es6中,當物件鍵名與對應值名相等的時候,可以進行簡寫
const baz =
// 等同於
const baz =
方法也能夠進行簡寫
const o =
};// 等同於
const o =
}
在函式內作為返回值,也會變得方便很多
function getpoint() ;
}getpoint()
//
const obj =
};new obj.f() // 報錯
es6 允許字面量定義物件時,將表示式放在括號內
let lastword = 'last word';
const a = ;
a['first word'] // "hello"
a[lastword] // "world"
a['last word'] // "world"
表示式還可以用於定義方法名
let obj =
};obj.hello() // hi
注意,屬性名表示式與簡潔表示法,不能同時使用,會報錯
// 報錯
const foo = 'bar';
const bar = 'abc';
const baz = ;
// 正確
const foo = 'bar';
const baz = ;
注意,屬性名表示式如果是乙個物件,預設情況下會自動將物件轉為字串[object object]
const keya = ;
const keyb = ;
const myobject = ;
myobject // object
this
關鍵字總是指向函式所在的當前物件,es6 又新增了另乙個類似的關鍵字super
,指向當前物件的原型物件
const proto = ;
const obj =
};object.setprototypeof(obj, proto); // 為obj設定原型物件
obj.find() // "hello"
在解構賦值中,未被讀取的可遍歷的屬性,分配到指定的物件上面
let = ;
x // 1
y // 2
z //
解構賦值是淺拷貝
let obj = };
let = obj;
obj.a.b = 2; // 修改obj裡面a屬性中鍵值
x.a.b // 2,影響到了結構出來x的值
物件的擴充套件運算子等同於使用object.assign()
方法
es6 一共有 5 種方法可以遍歷物件的屬性。
reflect.ownkeys()
// ['2', '10', 'b', 'a', symbol()]
嚴格判斷兩個值是否相等,與嚴格比較運算子(===)的行為基本一致,不同之處只有兩個:一是+0
不等於-0
,二是nan
等於自身
+0 === -0 //true
nan === nan // false
object.is(+0, -0) // false
object.is(nan, nan) // true
object.assign()
方法用於物件的合併,將源物件source
的所有可列舉屬性,複製到目標物件target
object.assign()
方法的第乙個引數是目標物件,後面的引數都是源物件
const target = ;
const source1 = ;
const source2 = ;
object.assign(target, source1, source2);
target //
返回指定物件所有自身屬性(非繼承屬性)的描述物件
const obj =
};object.getownpropertydescriptors(obj)
// ,
// bar:
// }
object.setprototypeof
方法用來設定乙個物件的原型物件
object.setprototypeof(object, prototype)
// 用法
const o = object.setprototypeof({}, null);
用於讀取乙個物件的原型物件
object.getprototypeof(obj);
返回自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵名的陣列
var obj = ;
object.keys(obj)
// ["foo", "baz"]
返回自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵對應值的陣列
const obj = ;
object.values(obj)
// ["bar", 42]
返回乙個物件自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值對的陣列
const obj = ;
object.entries(obj)
// [ ["foo", "bar"], ["baz", 42] ]
用於將乙個鍵值對陣列轉為物件
object.fromentries([
['foo', 'bar'],
['baz', 42]
])//
ES6 細化ES6之 物件的擴充套件
物件的屬性 屬性表示法es6 允許在大括號裡面,直接寫入變數和函式,作為物件的屬性和方法 es5 let name 張無忌 function sayme es5定義物件的屬性和方法的方式 var obj console.log obj.name 張無忌es6 let name 張無忌 functio...
ES6中對物件的擴充套件
es6允許直接寫入變數和函式作為物件的屬性和方法。這樣的書寫更加簡潔。es6允許在物件中只寫屬性名,不寫屬性值。這時,屬性值等於屬性名所代表的變數。function f x y f 1,2 object function getpoint getpoint js語言定義物件的屬性有兩種方法。obj....
es6中新增的常用數值擴充套件
number.integer 123 true 是否為整形數字 注意,引數必須是數字,字串的數字都不行 number.max safe integer number.min safe integer js可處理的最大和最小的數值,也就是安全區 number.isfinite 用來檢查乙個數值是否為有...