• 如何让a==1&&a==2&a==3成立




    /*
    *    == 进行比较的时候,如果左右两边数据类型不一样,则先转换为相同的数据类型,然后在进行比较
    *      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!')
        }



  • 相关阅读:
    你是老鸟吗?但是有些你可能目前都不知道的东西
    工具类合集
    也谈Flash mmorpg地图问题【转】
    大量实用工具类、开源包,该帖绝对值得你收藏!
    如何设计产品【页游】
    网络游戏中,玩家常常询问什么时候开新服,其中的本质需求是什么?
    大将军UE分析
    天天连萌UE分析
    selenium IDE 回放报错
    jenkins配置
  • 原文地址:https://www.cnblogs.com/HYTing/p/12623328.html
Copyright © 2020-2023  润新知