/*
*    == 进行比较的时候,如果左右两边数据类型不一样,则先转换为相同的数据类型,然后在进行比较
*      1、{} == {} false 两个数据进行比较,比较的是堆内存的地址
*      2、null == undefined true | null === undefined false
*      3、NaN == NaN false NaN 和谁都不相等
*      4、[12] == "12" 对象和字符串比较,是把对象 toString() 转换为字符串之后再进行比较的
*      5、剩余所有情况在进行比较的时候,都是转换为数字(前提数据类型不一样)
*      对象转数字:先转换为字符串,然后在转换为数字
*      字符串转数字:只要出现一个非数字字符,结果就是 NaN
*      布尔转数字: true -> 1 false -> 2
*      null 转数字:0
*      undefined 转数字:NaN
*
*      [12] == true --> Number([12].toString()) == 1 => false
*      [] == false --> 0 == 0 => true
*      [] == 1 --> 0 == 1 => false
*
* ---------------------------------------------------
 
*/
// 一、=> 对象和数字比较:先把对象 .toString() 变为字符串,然后再转换为数字
  var a = {
    n: 0,
    //=> 私有的属性方法
    toString: function () {
      return ++this.n;
    }
  };
//a.toString(); //=> 此时调用的就不再是 Object.prototype.toString 了,调用的是私有的
  if (a == 1 && a == 2 && a == 3) {
    console.log('yes!')
  }
// 二、 => shift:删除数组第一项,把删除的内容返回,原有数组改变
  let a = [1, 2, 3];
  a.toString = a.shift;
  if (a == 1 && a == 2 && a == 3) {
    console.log('yes!')
  }
/*
*    ES6 中新增加的一些方法
*      String.fromCharCode([n]) <=> "z".charCodeAt()
*      Array.from()
*     Array.isArray()
*       Object.create([Obj])
*         Object.defineProperty()
*/
// 三、 => Object.defineProperty 监听当前对象某个属性的各种情况
    Object.defineProperty(window, 'a', {
      get: function () {
        this.value ? this.value++ : this.value = 1;
        return this.value;
      }
    });
    if (a == 1 && a == 2 && a == 3) {
      console.log('yes!')
    }

最新文章

  1. sqlserver索引小结
  2. Unity学习疑问记录之图片画质
  3. 在Flex (Flash)中嵌入HTML 代码或页面&mdash;Flex IFrame
  4. XMPP语音聊天解决方案 (待论证 正打算写)
  5. 新版703n刷openwrt
  6. 两种Data Table参数化设置的区别
  7. MySQL数据库内置函数
  8. 简单易懂的单元测试框架-gtest(一)
  9. 在Windows上使用CMake+CMakeLists.txt生成VS项目编译DlibDotnet库
  10. [转帖]Linux后端执行命令的方法
  11. nodejs抓取别人家的页面的始末
  12. PHP问题解决
  13. 在 Ubuntu 下安装 Deepin 的 QQ、微信、百度云和迅雷等软件
  14. MAC 系列 之XCode7.1 + HBuilder MUI 离线打包 ipa 上次application leader 问题:ERROR ITMS - 90032
  15. django之路由分发
  16. Hive_Hive的数据模型_数据存储
  17. 贪心 HDOJ 5385 The Path
  18. 洛谷——P2090 数字对
  19. 【BZOJ4823】[CQOI2017]老C的方块(网络流)
  20. c++的explicit理解

热门文章

  1. metasploit payload运行原理浅析
  2. 基于mykernel 2.0编写一个操作系统内核
  3. Vulnhb 靶场系列:Jarbas1.0
  4. docker虚拟化平台构建
  5. [hdu5312]数的拆分,数学推导
  6. DevOps vs. Agile:它们有什么共同点?
  7. SpringMVC中参数的传递(一)
  8. scikit-learn 梯度提升树(GBDT)调参笔记
  9. Scrapy 框架 入门教程
  10. Java的泛型详解(一)