美文网首页
你不知道的js-中-第一章-类型

你不知道的js-中-第一章-类型

作者: 本一和他的朋友们 | 来源:发表于2020-01-10 17:59 被阅读0次

    这一章到底在说什么?

    JavaScript中的类型有哪几种,及其它的一些用法。

    作者具体说了什么,怎么说的?

    什么是类型:
    对语言引擎和开发人员来说,类型是值的内部特征,它定义了值的行为,以使其区别于其他值。

    1.2 内置类型

    JavaScript有七种内置类型:

    1. 空值(null)
    2. 未定义(undefined)
    3. 布尔值(boolean)
    4. 数字(number)
    5. 字符串(string)
    6. 对象(object)
    7. 符号(symbol, ES6中新增)
    typeof null // object
    typeof undefined // undefined
    typeof true  // boolean
    typeof 42  // number
    typeof “42” // string
    typeof {life: 42} // object
    

    1.3: 值和类型

    JavaScript中的变量是没有类型,只有值才有。变量可以随时持有任何类型的值。
    皇额角度来理解,js不做“类型强制”;也就是说,语言引擎不要求变量总是持有与其初始值同类型的值。一个变量可以现在被赋予字符串类型,随后又被赋值为数字类型值。

    1.3.1: undefined和undeclared
    已在作用域中声明但还没有赋值的变量,是undefined的,相反,还没有在作用域中声明过的变量,是undeclared 的。

    Var a;
    a // undefined
    b // ReferencerError: b is not undefined
    

    1.3.2 typeof Undeclared

    typeof有自己的安全防范机制。

    // 如果debug没有被声明
    
    // 这样会抛出错误
    if (debug) {
        console.log(“debug is starting”)
    }
    
    // 这样是安全的
    if (typeof debug !== “undefined”) {
        console.log(“debug is starting”)
    }
    

    本章小结: 小结

    1. JavaScript有七种内置类型:null, undefined, boolean, number, string, object和symbol,可以使用typeof运算符来查看具体类型
    2. 变量没有类型,但它们持有的值有类型。类型定义了值的行为特征。
    3. 很多开发人员将undefined和undeclared混为一谈,但在JavaScript中它们是两码事。undefined是值的一种,undeclared则表示变量还没有被声明过。
    4. 遗憾的是,JavaScript却将它们混为一谈,当我试图访问undeclared 变量时这样报错:ReferenceError: a is not defined,并且typeof对undefined和undeclared变量都返回”undefined”
    5. 然而,通过typeof的安全防范机制(组织报错)来检查undeclared变量,有时是个不错的办法。

    相关文章

      网友评论

          本文标题:你不知道的js-中-第一章-类型

          本文链接:https://www.haomeiwen.com/subject/eddmactx.html