es6 新语法
2018-12-14 本文已影响0人
IceCover
ES6的Object.is()
超越ES5 比较两个值是否相等
ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。
var a=1,b='1';
console.log(a==b)//true
console.log(+0===-0)//true
console.log(NaN===NaN)//false
<script>
console.log(Object.is('foo', 'foo'))// true
console.log(Object.is({}, {}))// false
console.log(Object.is(+0, -0))// false
console.log(Object.is(NaN, NaN))// true
</script>
**Object.getPrototypeOf
获取实例对象的原型
__proto__
并不是语言本身的特性,这是各大厂商具体实现时添加的私有属性,虽然目前很多现代浏览器的 JS 引擎中都提供了这个私有属性,但依旧不建议在生产中使用该属性,避免对环境产生依赖。
Object.getPrototypeOf