ES6中对象新增功能

90 阅读1分钟
  • 在ES6中,变量可直接作为对象的成员,其中变量的变量名为属性名,变量的值为属性值,提高开发效率
var name='karen'
var age=18
var obj={name,age}//相当于obj={name:'karen',age:18}
console.log(obj)

image.png

  • 在ES6中方法也是可以简写的,可以不用写关键字function
var obj={name:'karen',say(){console.log('hello')}}
// 不简化写法:var obj={name:'karen',say:function(){console.log('hello')}}
 obj.say()

image.png

  • 属性名表达式:ES6允许用表达式作为属性名,但是必须要把表达式放在方括号内。
var a=55
var obj={name:'karen',['hello'+'world']:'myworld',[a+5]:'number'}
console.log(obj)

image.png

  • 属性的简洁表示法和属性名表达式不能同时使用,否则会报错。
var age=55
var obj={[age],name:'karen'};
console.log(obj)

image.png

  • 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

image.png

Object.is与===的区别
(1)判断+0与-0的结果不同

console.log(Object.is(+0,-0))//false
console.log(+0===-0)//true

image.png

(2)NaN等于本身的结果不相同

console.log(Object.is(NaN,NaN))//true
console.log(NaN===NaN)//false

image.png