当前位置: 首页 > Web前端 > HTML5

深入理解ES6的《ES6中较小的改动》

时间:2023-04-05 00:51:04 HTML5

识别整数console.log(Number.isInteger(25))//trueconsole.log(Number.isInteger(25.0))//trueconsole.log(Number.isInteger(25.1))//falsesafeintegerIEEE754onlyaccurate表示一个从-2的53次方到2的53次方的整数letinside=Number.MAX_SAFE_INTEGER,outside=Number.MAX_SAFE_INTEGER+1//Number.MIN_SAFE_INTEGER表示整数范围的下限console.log(Number.isInteger(inside))//trueconsole.log(Number.isSafeInteger(inside))//trueconsole.log(Number.isInteger(outside))//trueconsole.log(Number.isSafeInteger(outside))//falseUnicode标识符可以是Unicode转义序列作为标识符使用let\u0061='abc'console.log(\u0061)//abcconsole.log(a)//abc可以使用Unicode代码点转义序列作为标识符let\u{61}='abc'console.log(\u{61})//abcconsole.log(a)//abc形式化的__proto__属性只能在对象字面量__proto__中指定一次,如果指定了两个__prpto__属性则抛出错误,这是唯一带有this的对象字面量限制。更改可计算形式["__proto__"]的行为类似于普通属性,不会设置或返回当前对象的原型。所有与对象文字属性相关的规则都适用于这种形式。应用不可计算的形式将抛出异常。使用__proto__和使用Object.getPrototypeOf或Object.setPrototypeOf方法的区别在于__proto__可以直接设置对象字面量的Prototypeletperson={getGreeting(){return'hello'}}letdog={getGreeting(){return'woof'}}letfriend={__proto__:person}console.log(friend.getGreeting())//helloconsole.log(Object.getPrototypeOf(friend)===person)//trueconsole.log(friend.__proto__===person)//truefriend.__proto__=dogconsole.log(friend.getGreeting())//woofconsole.log(Object.getPrototypeOf(friend)===dog)//trueconsole.log(friend.__proto__===dog)//true并不是通过调用Object.create方法创建友元对象,而是创建一个标准的对象字面量,并为__proto__属性赋值。换句话说,当使用Object.create方法创建对象时,必须为所有其他对象属性指定完整的属性描述符