這篇看看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在同一作用域下,...