javascript原生知识之 数据类型及用法

数据类型及用法

    ECMAScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有一种复杂数据类型----Object,还有Es6新增的Symbol类型。object本质上是由一组无序的名值对组成的。
    typeof----用来检测给定变量的数据类型, 返回的值有
        "undefined" --- 如果这个值未定义
        "boolean" ---- 如果这个值是布尔值
        "string" ---- 如果这个值是字符串
        "number" ---- 如果这个值是数值
        "object" ---    如果这个值是对象或者null
        "function" --- 如果这个值是函数

      undefined类型:  在使用var声明变量但未对其加以初始化时,这个值就是undefined。用typeof检测的时候,对已声明的和未声明的都会返回undefined值。
       null类型:  null类型是一个特殊的值,表示一个空对象指针,使用typeof操作符检测null值时会返回“object”。如果定义的变量准备在将来用于保存对象,那么最好将变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用。
       boolean类型:  boolean类型只有两个字面值: true 和 false。各种类型转成boolean的规则:
            数据类型                    转换为true的值                           转换为false的值
            Boolean                      true                                            false
            String                          任何非空字符串                          ""(空字符串)
            Number                       任何非零数字值(包括无穷大)      0和NaN
            Object                          任何对象                                     null
            Undefined                                                                        undefined           
        number类型:  number类型是用来表示整数和浮点数值(浮点数值再某些语言中也被称为双精度数值)。最基本的数值格式是十进制整数。除了十进制表示外,整数还可以通过八进制(以8为基数)或十六进制(以16为基数)的字面值来表示。其中,八进制字面值的第一位必须是零(0),然后是八进制数字序列(0~7).如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析。在严格模式下八进制字面量无效。   十六进制字面值的前两位碧血是0x,后跟任何十六进制数字(0~9及A~F)。其中,字母A~F可以大写,也可以小写。
        浮点数值:浮点数值为该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。由于保存浮点数值需要的内存空间是保存整数数值的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值。显然,如果小数点后面没有跟任何数字,那么这个数值就可以作为整数值来保存。同样地,如果浮点数值本身表示的就是一个整数(如1.0),那么该值也会被转换为整数。极大或极小的数值可以用e表示法来表示。用浮点数值进行运算的时候注意,会有丢精度问题。
        数值范围:ECMAScript能够表示的最小数值保存在Number.MIN_VALUE中,在大多数浏览器中,这个值是5e-324, 能够表示的最大数字保存在Number.MAX_VALUE中,这个值是1.7976931348623157e+308。如果某次计算的结果得到了一个超出JavaScript数值范围的值,那么这个数值将被自动转换成特殊的Infinity值。具体来说,如果这个数值是负数,则会被转换为-Infinity(负无穷),如果这个数值是正数,则会被转换成Infinity(正无穷)
       NaN: 非数值,即一个特殊的数值,在一些数值运算中返回了不是数值的情况时,就会返回NaN.
      String类型:String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。
      Object类型:对象就是一组数据和功能的集合。Object类型是所有它的实例的基础。Object的每个实例都具有下列属性和方法:
           constructor:  保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是Object()
           hasOwnProperty(propertyName): 用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如,o.hasOwnProperty("name"))
           isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型
           propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定
            toLocaleString(): 返回对象的字符串表示,该字符串与执行环境的地区对应。
            toString(): 返回对象的字符串表示。
            valueOf(): 返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。

你可能感兴趣的:(javascript原生知识之 数据类型及用法)