摘要:指定,打印打印打印用來(lái)給對(duì)象定義屬性的可寫(xiě)可遍歷可配置給對(duì)象指定對(duì)個(gè)屬性打印,打印獲取,設(shè)置用來(lái)獲取屬性的描述打印用來(lái)返回對(duì)象的值打印獲取所有屬性名打印讓一個(gè)對(duì)象不可擴(kuò)展,該對(duì)象無(wú)法再添加新的屬性,但是可以刪除現(xiàn)有屬性對(duì)一個(gè)對(duì)象密封,該方法
es5_Object
creat(指定propto,):
let obj = { x:1, y:2 }; //es5 let obj2 = Object.create(obj,{ z:{ value:3 } }); //es6 let obj3={ __proto__:obj, z:3 } console.log(obj2);//打印Object {z: 3}; console.log(obj3);//打印Object {z: 3}; console.log(obj2.x);//打印1;
Object.defineProperty() 用來(lái)給對(duì)象定義屬性的:
let obj = { x:1, y:2 } obj.k=3; Object.defineProperty(obj,"j",{ value:4, writable:true, //可寫(xiě) enumerable:true, //可遍歷 configurable:true //可配置 });
Object.defineProperties() 給對(duì)象指定對(duì)個(gè)屬性:
Object.defineProperties(obj,{ "m":{ value:"m1" }, "l":{ value:"l1" } }) obj.j=50; obj.k=50; console.log(obj);//打印Object {x: 1, y: 2, k: 50, j: 50, m: "m1",l:"l1"}; for(var key in obj){ console.log(key);//打印x y k j; };
獲取,設(shè)置:
getOwnPropertyDescriptor()用來(lái)獲取屬性的描述:
console.log(Object.getOwnPropertyDescriptor(obj,"x"));//打印Object {value: 1, writable: true, enumerable: true, configurable: true};
Object.keys()用來(lái)返回對(duì)象的key值:
console.log(Object.keys(obj));//打印["x", "y", "k", "j"];
Object.getOwnPropertyNames()獲取所有屬性名:
console.log(Object.getOwnPropertyNames(obj));//打印["x", "y", "k", "j", "m", "l"];
Object.preventExtensions():
Object.preventExtensions(obj); //讓一個(gè)對(duì)象不可擴(kuò)展,該對(duì)象無(wú)法再添加新的屬性,但是可以刪除現(xiàn)有屬性;
Object.seal() :
Object.seal(obj); //對(duì)一個(gè)對(duì)象密封,該方法會(huì)阻止對(duì)象擴(kuò)展,并將該對(duì)象的所有屬性設(shè)置為不可配置;
Object.freeze() :
Object.freeze(obj); //對(duì)一個(gè)對(duì)象進(jìn)行凍結(jié),實(shí)現(xiàn)常量的需求,該方法會(huì)阻止對(duì)象擴(kuò)展,并凍結(jié)對(duì)象,將其所有屬性設(shè)置為只讀和不可配置;
Object.isExtensible():
Object.isExtensible(obj); //判斷對(duì)象是否擴(kuò)展;
Object.isSealed():
Object.isSealed(obj); //判斷對(duì)象是否密封;
Object.isFrozen():
Object.isFrozen(obj); //判斷對(duì)象是否凍結(jié); //writable:false不可改,true可改; //enumerable:false不可遍歷,true可遍歷; //configurable:false不可配置,true可配置;
"use strict":
嚴(yán)格模式 1.棄用了很多以前版本的語(yǔ)法,如果在用的話就提示錯(cuò)誤;
嚴(yán)格模式 2.讓你使用一些最新版本的語(yǔ)法;有些瀏覽器不支持新版本的語(yǔ)法,加上嚴(yán)格模式就支持了;
下面就是嚴(yán)格模式總結(jié)::
1.使用var聲明變量嚴(yán)格模式中將不通過(guò) 2.何使用"eval"的操作都會(huì)被禁止 3.val作用域 4.ith被禁用 5.aller/callee 被禁用 6.禁止擴(kuò)展的對(duì)象添加新屬性會(huì)報(bào)錯(cuò) 7.除系統(tǒng)內(nèi)置的屬性會(huì)報(bào)錯(cuò) 8.delete使用var聲明的變量或掛在window上的變量報(bào)錯(cuò) 9.delete不可刪除屬性(isSealed或isFrozen)的對(duì)象時(shí)報(bào)錯(cuò) 10.對(duì)一個(gè)對(duì)象的只讀屬性進(jìn)行賦值將報(bào)錯(cuò) 11.對(duì)象有重名的屬性將報(bào)錯(cuò) 12.函數(shù)有重名的參數(shù)將報(bào)錯(cuò) 13.八進(jìn)制表示法被禁用 14.arguments嚴(yán)格定義為參數(shù),不再與形參綁定 15.函數(shù)必須聲明在頂層 16.ES5里新增的關(guān)鍵字不能當(dāng)做變量標(biāo)示符使用,如implements, interface, let, package, private, protected, pulic, static, yield 17.call/apply的第一個(gè)參數(shù)直接傳入不包裝為對(duì)象 18.call/apply的第一個(gè)參數(shù)為null/undefined時(shí),this為null/undefined 19.bind的第一個(gè)參數(shù)為null/undefined時(shí),this為null/undefined
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84232.html
摘要:特性新增的等方法,其中的方法在中被標(biāo)準(zhǔn)話的反序列化小勇小剛大勇小花小黑小白用來(lái)將字符串轉(zhuǎn)成對(duì)象的反序列化的序列化小勇小剛大勇小花小黑小白將對(duì)象轉(zhuǎn)成字符串的序列化字符串下列方法全部跟回調(diào)函數(shù)迭代方法數(shù)組遍歷可傳值數(shù)組遍歷可傳值返回?cái)?shù)組,數(shù)組 es5特性 es5新增的string、number、object、Date、function、json等方法,其中json的方法在es5中被標(biāo)準(zhǔn)話!...
閱讀 965·2023-04-25 23:50
閱讀 1994·2021-11-19 09:40
閱讀 609·2019-08-30 13:50
閱讀 2737·2019-08-29 17:11
閱讀 1051·2019-08-29 16:37
閱讀 2996·2019-08-29 12:54
閱讀 2804·2019-08-28 18:17
閱讀 2647·2019-08-26 16:55