Head First JavaScript学习笔记(五)

  • 类型、相等、转换等

            Head First JavaScript学习笔记(五)

undefined数据类型:

         正如你看到的,在任何不确定的情况下——使用未初始化的变量、访问不存在(或已删除)的属性、使用不存在的数组元素时——你都将遭遇undefined。

        undefined到底是什么?它其实并不复杂。你可以这么认为:对于任何还没有值(即还未初始化)的东西,都会将undefined赋给它。这样做有什么好处呢? undefined让你能够判断是否给变量(属性或数组元素)赋值了。

Head First JavaScript学习笔记(五)

如何使用null:

         很多函数和方法都返回对象,你需要确认获得的是货真价实的对象而不是null,以防函数无法找到或创建要返回的对象。

         别忘了,null用于表示对象不存在。

不是数字的数字NaN:

         JavaScript使用NaN[ 通常被称为非数字(Not a Number)] 来表示它无法表示的数值结果。 就拿0/0来说吧, 在计算机中无法表示其结果, 因此JavaScript使用NaN来表示它。

        NaN可能是世上最怪异的值。 它不仅用于表示所 有 无 法 表 示 的 数 值 ,还是JavaScript中唯一一个与自己不相等的值!

处理NaN:

        需要使用特殊函数isNaN,

   Head First JavaScript学习笔记(五)

     Head First JavaScript学习笔记(五)

理解相等运算符 ==:

        如果两个值的类型相同,就直接进行比较

             如果要比较的两个值的类型相同,如比较两个数字或两个字符串,将按你期望的方式进行比较:将这两个值进行比较,如果它们相同,结果为true。非常简单。

        如果两个值的类型不同,则尝试将它们转换为相同的类型,再进行比较

             这种情况更有趣。假设你要对两个类型不同的值进行比较,如一个数字和一个字符串, JavaScript将把字符串转换为数字,再进行比较

Head First JavaScript学习笔记(五)

相等运算符如何转换操作数:

     情形1: 比较数字和字符串

             Head First JavaScript学习笔记(五)

    情形2: 比较布尔值和其他类型

          Head First JavaScript学习笔记(五)

    情形3: 比较null和undefined

            Head First JavaScript学习笔记(五)

    情形4: 其实只有三种情形。

           Head First JavaScript学习笔记(五)

严格相等 ===:

        当且仅当两个值的类型和值都相同时,它们才是严格相等的

如何判断两个对象是否相等:

         检查两个对象变量是否相等时,比较的是指向对象的引用

         仅当两个引用指向的是同一个对象时,它们才相等

JavaScript将哪些值视为假值:

        Head First JavaScript学习笔记(五)