ES6學習 新加API Object

2021-07-09 20:00:49 字數 1241 閱讀 6394

這篇看看object物件新新增的一些api。

1)object.is ( value1, value2 )

使用===判斷兩個value是否相等,兩個例外,nan等於nan,-0不等於+0。

var x = nan, y = 0, z = -0;

x === x; // false

y === z; // true

object.is( x, x ); // true

object.is( y, z ); // false

2)object.getownpropertysymbols( o )

返回物件symbol型別的key。

3)object.setprototypeof ( o, proto )

設定物件的隱式原型。

var o1 = 

};var o2 = {};

object.setprototypeof( o2, o1 );

o2.foo(); // foo

var o1 =

};var o2 = object.setprototypeof( {}, o1 );

o2.foo();

4)object.assign ( target, ...sources )

物件的淺拷貝,把sources物件的內容拷貝到target,忽略symbol型別的key,不能列舉的key,父物件中的key

var target = {},

o1 = , o2 = ,

o3 = , o4 = ;

object.defineproperty( o3, "e", );

object.defineproperty( o3, "f", );

o3[ symbol( "g" ) ] = 7;

object.setprototypeof( o3, o4 );

object.assign( target, o1, o2, o3 );

target.a; // 1

target.b; // 2

target.c; // 3

target.e; // 5

object.getownpropertydescriptor( target, "e" );//object

*以上全部**在chrome 48下通過測試

ES6學習 新的語法 函式引數Spread

spread操作符 是比較新的特性,但是在es6的規範中,沒有找到單獨的章節對這個操作符進行說明,這個操作符主要用在兩種情況下 函式傳參和陣列生成,這節主要講解第一種情況。規範的12.3.6.1中對函式引數列表的解釋如下 從上面描述的第四步中可以清晰看到,spread操作符後面的表示式應該是個ite...

ES6學習 新的語法 陣列元素Spread

前一篇文章講了spread操作符在函式引數中的用法,這篇簡單講一下spread操作符在陣列元素中的應用。直接看 吧 1,2,3 4 1,2,3,4 let x a b let y c let z d e let arr x,y,z a b c d e abc a b c abc split 舊的寫法...

es6新特性 ES6新特性(一)

var 1 var宣告的是函式作用域 區域性 但在if for等定義的變數是全域性的 2 var 具有變數提公升,預解析 3 在同乙個作用域下,var可以宣告多次 4 var 宣告的變數會掛載到window上 let1 let不存在變數提公升,在變數使用之前,必須要先宣告 2 let在同一作用域下,...