zoukankan      html  css  js  c++  java
  • 绝对相等与弱相等


    console.log([] == ![]); //true //弱相等"=="会进行类型转换,转换成统一类型进行比较 // !符号优于==,[]boolean值为TRUE,所以![]就是FALSE, // 根据转换规则,右边转换成number类型为0,左边[]转换成number类型为0 // 所以两者相等。 console.log([] === ![]); //false //2.绝对相等不会进行类型转换 const a = { value: [3, 2, 1], valueOf: function () { //valueOf是固定方法,返回原始类型的值 return this.value.pop(); }, }
    实例:
    console.log(a
    == 1 && a == 2 && a == 3); //true //js解析会将a转换成number类型,所以结果会是true //首先你需要知道object.prototype.valueOf() //对象a调用valueOf返回了ToObject(value),因为 //value是number类型,所以返回了一个number的对象, //值为参数,最终js引擎将其转换成原始类型,所以最终的结果才会true. var value = 0; Object.defineProperty(window, 'a', { get: function () { return this.value += 1; } }); console.log(a === 1 && a === 2 && a === 3); //true //主要是利用了property这个函数
  • 相关阅读:
    Spring注解@Component、@Repository、@Service、@Controller区别
    多线程基本知识
    分布式与集群的区别
    Top 10 Uses For A Message Queue
    redis 总结
    redis 学习
    线程控制-延时与守护
    kafka 教程(一)-初识kafka
    Kafka 教程(二)-安装与基础操作
    ZooKeeper-安装
  • 原文地址:https://www.cnblogs.com/angle-xiu/p/11283742.html
Copyright © 2011-2022 走看看