美文网首页
高程三第三章之数据类型

高程三第三章之数据类型

作者: 会有猫惹 | 来源:发表于2017-06-19 11:13 被阅读0次
    1.标识符:

    所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。第一个字符必须是一个字母、下划线(_)或一个美元符号($);其他字符可以是字母、下划线、美元符号或数字。习惯采用驼峰大小写格式。

    2.数据类型:

    ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和 String。还有 1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的

    3.变量:

    ECMAScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。

    4.严格模式:

    在顶部添加"use strict"来启用严格模式。

    5.typeof操作符:

    返回以下值:

    • "undefined"——如果这个值未定义;
    • "boolean"——如果这个值是布尔值;
    • "string"——如果这个值是字符串;
    • "number"——如果这个值是数值;
    • "object"——如果这个值是对象或 null;
    • "function"——如果这个值是函数。
    6.关于Undefined:
    var message;
    alert(message); // 返回undefined
    alert(age); // 产生错误
    typeof(message); // 返回undefined
    typeof(age); // 返回undefined
    
    7.关于Null:
    var message = null;
    typeof(message); // 返回object
    

    从逻辑上看,null 值表示一个空对象指针,因此返回object。
    实际上,undefined 值是派生自 null 值的,因此 ECMA-262 规定对它们的相等性测试要返回 true:alert(null == undefined); //true

    8.关于Boolean:

    数据类型 | 转换为true的值 | 转换为false的值
    –––– | –––– | ––––
    Boolean | true | false
    String | 任何非空字符串 | ""(空字符串)
    Number | 任何非零数字值(包括无穷大) | 0和NaN
    Object | 任何对象 | null
    Undefined | n/a | undefined

    n/a(或 N/A),是 not applicable 的缩写,意思是“不适用”。

    9.Number类型:

    八进制字面量在严格模式下是无效的,会导致支持的 JavaScript 引擎抛出错误。
      浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。例如,0.1 加 0.2的结果不是 0.3,而是 0.30000000000000004。
    例如:

    if (a + b == 0.3) {
      alert("You got 0.3.");
    }
    

    在这个例子中,我们测试的是两个数的和是不是等于 0.3。如果这两个数是 0.05 和 0.25,或者是 0.15和 0.15 都不会有问题。而如前所述,如果这两个数是 0.1 和 0.2,那么测试将无法通过。因此,永远不要测试某个特定的浮点数值。
      由于内存的限制,ECMAScript 并不能保存世界上所有的数值。ECMAScript 能够表示的最小数值保存在 Number.MIN_VALUE 中——在大多数浏览器中,这个值是 5e-324;能够表示的最大数值保存在Number.MAX_VALUE 中——在大多数浏览器中,这个值是 1.7976931348623157e+308。如果某次计算的结果得到了一个超出 JavaScript 数值范围的值,那么这个数值将被自动转换成特殊的 Infinity 值。具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转换成 Infinity(正无穷)。

    var num = Number.Max_VALUE;
    isFinite(num); //  true
    isFinite(num + 1); // false
    
    10.NaN:

    NaN 本身有两个非同寻常的特点。首先,任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN,这个特点在多步计算中有可能导致问题。其次,NaN 与任何值都不相等,包括 NaN 本身。例如,下面的代码会返回 false:
    alert(NaN == NaN); //false
      isNaN()函数,不是数值或者不能转化为数值则返回true,是数值或者能被转化为数值则返回false。例如:isNaN(true);返回false。
      只有 0 除以 0 才会返回 NaN,正数除以 0 返回 Infinity,负数除以 0 返回-Infinity。

    11.String类型:
    字符字面量

      字符字面量整体被当作一个字符解析。
      ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
      将一个值转化为字符串有两种方式:1.利用toString()方法。 2.将其用+号与一个空字符""链接起来。

    toString():

    数字、布尔值、对象、字符串值都有toString()这个方法,但是null与undefined没有(会报错)。


    例子

    在不知道要转换的值是不是 null 或 undefined 的情况下,还可以使用转型函数 String(),这个函数能够将任何类型的值转换为字符串。
    例如:

    例子
    12.Object类型

    对象可以通过new操作符创建,如:var a = new Object();

    Object 的每个实例都具有下列属性和方法。
    • constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是 Object()。
    • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty("name"))。
    • isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
    • propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for-in 语句来枚举。与 hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
    • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
    • toString():返回对象的字符串表示。
    • valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString()方法的返回值相同。

    相关文章

      网友评论

          本文标题:高程三第三章之数据类型

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