一、什么是对象字面量

对象字面量就是创建对象(Object)的一种简单容易理解的方式,再通俗点就是所谓的键值对的集合。举个简单的例子:

let book = {
name: 'JavaScript',
price: 12,
};

但是对象字面量存在一点小问题,那就是再创建对象的时候需要对属性的值(如上面的name和price)进行初始化,此时会造成一定的重复。将上面的代码改成如下形式就会体现出这个问题所在:

function getBook(bookName, price) {
return {
bookName: bookName,
price: price,
getBookName: function() {
console.log(bookName);
}
};
}

可以看出函数内部返回一个对象,属性名称和函数的形参相同,而bookName和price都是重复的书写,这样子对编码的效率也是极为低下的。ES6对该种方式做了一定的扩展使其消除了属性名称和局部变量之间的重复书写。当一个本地变量和对象属性同名的时候,不需要再以键值对的方式书写,而是可以简化为如下的方式:

function getBook(bookName, price) {
return {
bookName: bookName,
price: price,
getBookName() {
console.log(bookName);
}
};
}

注意:上述的函数的书写方式也一样被简化了。

二、全等运算符(===)和Object.is()方法

在JS中比较两个值时,可能习惯使用相等运算符(==)或者全等运算符(===)来执行相应的语句,但是就算全等运算符也不一定完全准确,一个比较常见的例子就是:

console.log('NaN === NaN: ' + (NaN === NaN));  // 返回false

ES6中引入了Object.is()方法来弥补全等运算符的不准确性,下面是一些实际的使用方法:

console.log(Object.is(NaN, NaN));  // return true
console.log(Object.is(5, '5')); // return false
console.log(Object.is(5, 5)); // return true

 

最新文章

  1. windows phone如何才能在中国翻身?
  2. pdf文件的导入导出
  3. 探索c#之递归APS和CPS
  4. FastJson的简单实用
  5. http://www.111cn.net/jsp/Jsp-Servlet/45158.htm
  6. 用dx实现半透遮挡效果
  7. ubuntu全盘备份与恢复
  8. 《C++ primer》--第11章
  9. [BZOJ 3489] A simple rmq problem 【可持久化树套树】
  10. jQuery中on()方法用法实例详解
  11. c++基础 - constexpr
  12. Javascript高级编程学习笔记(83)—— 富文本选区(3)
  13. Tomcat安装、配置和部署笔记
  14. 单片机成长之路(51基础篇) - 002 STC单片机冷启动和复位有什么区别
  15. 002.Heartbeat部署及httpd高可用
  16. Jquery ajax回调函数不执行
  17. pycharm添加版本控制
  18. centos7.2 增加3T的XFS模式分区
  19. Linux下常用的编辑文件与保存命令
  20. Eclipse点不出方法了

热门文章

  1. boomworks 1999~2009
  2. woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
  3. Sublime text 3 中 Package Control安装
  4. Netty(六)揭开 BootStrap 的神秘面纱
  5. jira 优先级过滤
  6. 如何从 ToB 企业级 IM 产品中学习技术选型和架构
  7. MBP & battery
  8. input support upload excel only
  9. perl 在windows上获取当前桌面壁纸
  10. 开源OA办公平台功能介绍:应用市场-固定资产管理(一)功能设计