js经典题型
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // typeof 返回值有哪些
      // number string boolean, undefined, function, object
      // typeof a 返回结果是 number/string/boolean/undefined (数字类型,字符串类型,布尔类型,未定义)
      // typeof null => object
      // console.log(typeof []);
      // console.log(0 == null); // false
      // console.log(0 == undefined); // false
      // console.log(0 == false); // true 0 == 0
      // console.log("" == 0); // true 0 == 0
      // console.log(null == false); // false null == 0
      //  A == B 比较运算符,弱比较,隐式类型转换
      // A,B 都是数字的时候,数字的比较 比较数学含义
      // 无论 A与B 存在 NaN 返回值就是false
      // A,B 都是字符串 字符串比较
      // A字符串与B字符串长得一模一样。具有相同的字符串长度,每个位置上的内容相等。
      // 'abc' 'abd'
      /* A 与 B都是 布尔值
         true false
         A 与 B 同为 true 或者false 返回值为true,其余为false
         null == null
         undefined == undefined 
         null == undefined 相等。
         var a; //a 的值就是 undefined
         var b = null // null 用来站位
      */
      // 引用值的比较 比较的是地址。不能通过模样来比较
      /*
         [] == [] 不相等
         {} == {} 不相等
      */
      // 杂交
      /*
        数字 与 布尔(转换成数字)
        数字 与 字符串(转换成数字)
        布尔 与 字符串 =》 Number(布尔) == 字符串
        
        都会转化成数字进行比较
        原始值与引用值的比较
        '' == []
        原始值 与 引用值 转化成 原始值与原始值比较
        引用值 转化成 原始值 引用值会调用 valueOf 方法或者 toString 方法
        null == 0
        undefined == 0
      */
      // var obj = {
      //   valueOf() {
      //     return [];
      //   },
      //   toString() {
      //     return [];
      //   }
      // }
      // console.log(obj == 1);
      // console.log(obj == 2);
      console.log(+0 === -0); // true
      console.log([] == []); // false
      console.log([] == ""); // true
    </script>
  </body>
</html>

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号