- 在ES6中,变量可直接作为对象的成员,其中变量的变量名为属性名,变量的值为属性值,提高开发效率
var name='karen'
var age=18
var obj={name,age}//相当于obj={name:'karen',age:18}
console.log(obj)
- 在ES6中方法也是可以简写的,可以不用写关键字function
var obj={name:'karen',say(){console.log('hello')}}
// 不简化写法:var obj={name:'karen',say:function(){console.log('hello')}}
obj.say()
- 属性名表达式:ES6允许用表达式作为属性名,但是必须要把表达式放在方括号内。
var a=55
var obj={name:'karen',['hello'+'world']:'myworld',[a+5]:'number'}
console.log(obj)
- 属性的简洁表示法和属性名表达式不能同时使用,否则会报错。
var age=55
var obj={[age],name:'karen'};
console.log(obj)
- Object.is(value1, value2) :用来比较两个值是否严格相等(与===类似)
console.log(Object.is(1,1))//true
console.log(Object.is("hello",'hello'))//true
console.log(Object.is([11],[11]))//false 引用数据的引用空间不同所以不相等
console.log(Object.is({name:'jacr'},{name:'jacr'}))//false
Object.is与===的区别
(1)判断+0与-0的结果不同
console.log(Object.is(+0,-0))//false
console.log(+0===-0)//true
(2)NaN等于本身的结果不相同
console.log(Object.is(NaN,NaN))//true
console.log(NaN===NaN)//false