美文网首页
JS数据类型

JS数据类型

作者: 嘤嘤嘤998 | 来源:发表于2019-02-12 20:50 被阅读0次

    1. ECMAScript 原始类型:

    Undefined、Null、Boolean、Number 和 String。

    typeof 运算符
    var sTemp = "test string";
    alert (typeof sTemp);    //输出 "string"
    alert (typeof 86);    //输出 "number"
    

    对变量或值调用 typeof 运算符将返回下列值之一:
    undefined - 如果变量是 Undefined 类型的
    boolean - 如果变量是 Boolean 类型的
    number - 如果变量是 Number 类型的
    string - 如果变量是 String 类型的
    object - 如果变量是一种引用类型或 Null 类型的

    注释:您也许会问,为什么 typeof 运算符对于 null 值会返回 "Object"。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。

    Undefined 类型
    只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。

    var oTemp;
    alert(typeof oTemp); //输出 "undefined"
    

    提示:值 undefined 并不同于未定义的值。但是,typeof 运算符并不真正区分这两种值。考虑下面的代码:

    var oTemp;
    alert(typeof oTemp);  //输出 "undefined"
    alert(typeof oTemp2);  //输出 "undefined"
    

    如果对 oTemp2 使用除 typeof 之外的其他运算符的话,会引起错误,因为其他运算符只能用于已声明的变量上。
    例如,下面的代码将引发错误:

    var oTemp;
    alert(oTemp2 == undefined);
    

    当函数无明确返回值时,返回的也是值 "undefined",如下所示:

    function testFunc() {
    }
    alert(testFunc() == undefined);  //输出 "true"
    

    Null 类型
    另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

    alert(null == undefined);  //输出 "true"
    

    尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

    特殊的 Number 值
    NaN,表示非数(Not a Number)。NaN 是个奇怪的特殊值。一般说来,这种情况发生在类型(String、Boolean 等)转换失败时。例如,要把单词 blue 转换成数值就会失败,因为没有与之等价的数值。与无穷大一样,NaN 也不能用于算术计算。NaN 的另一个奇特之处在于,它与自身不相等,这意味着下面的代码将返回 false:

    alert(NaN == NaN);  //输出 "false"
    

    出于这个原因,不推荐使用 NaN 值本身。函数 isNaN() 会做得相当好:

    alert(isNaN("blue"));  //输出 "true"
    alert(isNaN("666"));  //输出 "false"
    

    ECMAScript 的字符字面量:
    \n 换行
    \t 制表符
    \b 空格
    \r 回车
    \f 换页符
    \ 反斜杠
    \ ' 单引号
    \ " 双引号
    \0nnn 八进制代码 nnn 表示的字符(n 是 0 到 7 中的一个八进制数字)
    \xnn 十六进制代码 nn 表示的字符(n 是 0 到 F 中的一个十六进制数字)
    \unnnn 十六进制代码 nnnn 表示的 Unicode 字符(n 是 0 到 F 中的一个十六进制数字)

    2. ECMAScript 引用类型

    引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。
    从传统意义上来说,ECMAScript 并不真正具有类。ECMAScript 定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。
    对象是由 new 运算符加上要实例化的对象的名字创建的。例如,下面的代码创建 Object 对象的实例:

    var o = new Object();
    

    相关文章

      网友评论

          本文标题:JS数据类型

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