JavaScript——数据类型

ECMAScript有五种简单的数据类型(也称为基本数据类型),分别是:Undefined、NULL、Boolean、Number、String

一种复杂的数据类型:object(由一组无序的名值对组成)。

ECMAScript不支持任何创建自定义类型的机制,只能是上述六种里面的其中一种。

ECMA数据类型具有动态性。

- typeof操作符
    用于检测给定的变量的数据类型。

    未定义值——-----"undefined"
    布尔值———------"boolean"
    字符串———------"string"
    数值————-------"number"
    对象或"NULL"---"Object"
    函数-----------“function”
- NULL类型

NULL类型是只有一个值得数据类型。

undefined值是派生自NUll值得,因此ECMA-262规定对他们的相等性测试返回true,如下面例子:

    alert(null==undefined)  //true

对于要保存的变量如果还没有真正的保存变量对象,应该明确的让变量保存null值,可区分null与undefined。

- Undefined类型

在使用声明变量但是没有它进行初始化时,变量就是undefined类型,未初始化和未声明的变量都会返回undefined值。

- Boolean类型

Boolean 有两个值:true和false。

Boolean类型的true和false是区分大小写的。true与false是对的Boolean类型,True,False以及其他混合的大小写形式都不是Boolean值,只可以当做标识符。

ECMAScript中所有的值都有与这两个Boolean等价的值。

如果想要将一个值转换为相应的Boolean值,可以调用转型函数Boolean() 。

各种数据类型以及对应的转换规则如下:

数据类型 转换为true的值 装换为false的值
Boolean true false
String 任何非空字符串 “”(空字符串)
Number 任何非零数字值,包括无穷大 0与NaN
Object 任何对象 null
undefined n/a undefined
- Number类型
  • 浮点数值

    浮点数值是指数值中只包含一个小数点,小数点后至少有一位数字。

    保存浮点数所占用的内存空间是整数的两倍。

    ECMA会不失时机的将浮点数值转换为整数值,分别有下面的情况:
    小数点后面没有跟任何数字;
    浮点数值本身是一个整数(例如1.0) ;

    极其大或者及其小的数用科学计数法表示.将小数点后带有6个零以上的浮点数转换为用e表示法表示的数值。(例如0.0000007转换为3e-7)

    浮点数值最高精度为17未小数。

    浮点数值计算会产生舍入误差问题。

  • 数值范围

    ECMAScript能够表示的最小数值保存在Number.MIN_VALUE中——在大多数浏览器中,这个值为5e-324。

    最大数值保存在Number.MAX_VALUE中,在大多数浏览器中,这个值为1.7976931348623157e+308。

    超过范围的会自动转换为Infinity值,负的就是-Infinity,正的就是 Infinity。

    用isFinite ()函数,可以测试数值是不是位于最大与最小之间的。

    -Infinity保存在Number.NEGATIVE_INFINITY 中

    Infinity保存在Number.POSITIVE_INFINITY 中 .

  • NaN(Not a Number)

    NaN是一个用来表示一个本来要返回数值的操作数没有返回数值的情况,在ECMAScript中任何数值除以0会返回NaN,不会影响其他代码的执行。

涉及任何NaN的操作都会返回NaN值。

isNaN () 函数,在接收到一个值后,会尝试将这个值转换为数值,如果不行的话,就会返回true。

isNaN()适用于对象,在基于对象调用isNaN()函数时,会首先调用valueOf()方法,然后确定该方法的返回值是否可以转换为数值,如果不能,则基于返回值调用toString()方法,在测试返回值。

  • 数值转换

    1 Number()可用于任何数据类型,转换规则如下:

    如果是Boolean值,true和false分别转换为1,0;

    如果是数值,只是简单的传入和返回;

    如果是空值,返回0;

    如果是undefined,返回NaN。

    如果是字符串且只包含数值,则将其转换为十进制数;如果字符串中只包含十六进制格式例如“OXF”则返回对应的十进制整数值;如果字符串为空,转换为0;如果字符串包含上述以外的情况,返回NaN。

    如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值,如果转换的结果是NaN,则调用对象的toString()方法,然后再依照前面的规则转换字符串。

.

-

你可能感兴趣的:(JavaScript笔记)