javascript 基本类型有哪些?

Undefined:

Undefined 类型只有一个值 undefined ,表示变量未定义

此类型派生自Null 类型,所以出现一个很有趣的东西 if(null==undefined)alet(‘true’);将执行并弹出 true,因为条件是恒等的.

当我们定义javascript变量的时候,其实默认就赋值为 undefined.

var test; 其实等价于 var test=undefined;

所以:当你要给一个对象定义变量时,最好这样, var testClass=null; 这样 testClass的默认值不少 undefined,保持的是一个空引用的null,

下一步给testClass赋值: testClass=obj; 这是testClass 的引用直接指向 obj 对象所在的地址上.

Unll:

Unll 类型只有一个值 null ,表示一个空对象指针,也就是一个空引用.

所以 typeof(null) 会返回 object,因为他确实是一个引用类型,只是这个引用没有该指向的值地址.

Boolean:

Boolea类型有俩个值 true,false 此类型与数值完全不是一个定义(因为在sql中bit类型 0等价于false,1等价于true)

而javascript中 true 和 1不等且没有任何关系, false 和 0不等且没有任何关系.

javascript内置转换Boolean类型函数 Boolean(要转化的值)

这个函数比较有趣:

数据类型 转化为True 转化False

Boolean true false

String 任何非空字符 “”(空字符串)

Number 任何非零数字 0和NaN

Object 任何对象 null

Undefind undefined

看看上面的转化表,此函数不管任何类型通通能转化成Boolean类型,这大概就是弱类型的灵活性,但是也带来了很多安全性问题及语言的严格性和紧密度.

Number:

此类型值比较多,整数,浮点数及各种数字类型(10进制数值,16进制数值及8进制数值)

浮点数要注意了:js里的浮点数最高精度保留17位小数,但是算数计算时精度远不如整数,比如 0.2 0.1=0.30000000000000004

所以在浮点数进行算数计算时一定注意,尤其是if逻辑判断时,有时可能永远不会为 true

NaN:

这个类型有点意思了,它是一个特殊的数值,但是它不是一个Number数值.

什么时候会出现这种情况呢?

当一个函数返回值是Numnber时,但是函数执行一半报错,当时设计此类型的原因就是不想抛出异常继续执行,但是有没有真正能返回的Number数值,所以返回了一个NaN 数值.

任何数值与NaN操作都返回NaN 数值.(可以理解为和一个不确定的数做运算,结果肯定是不确定的)

NaN 数值不等于其他任何数值,包括 NaN 不等于 NaN(可以理解为一个不确定的数永远不等于一个具体的数,一个不确定的数也永远不会和另外一个不确定的数相等)

内置函数 isNaN() 判断一个值是否不能转化为数值, 比如 isNaN(10) 返回false, isNaN(NaN) 返回true, isNaN(‘AAA’) 返回true

isNaN(’10′) 返回false,因为’10′本来是字符串,但是可以转化为10,所以不是NaN.

isNaN(true) 返回false,因为true可以转化为1,所以不是NaN.

String:

由0或多个16位Unicode字符组成的字符序列.

在所有类型中,除了null 和 undefined 没有toString() 方法外,其他类型都有此方法来返回相应值的字符串表现形式.

String() 方法将值转化为对应的字符串表现形式.String(null) –>”null” String(undefined) –>”undefined” 其他类型都可以使用toString()方法来返回自己的字符串表现形式.

Object:

对象是一组数据和功能的集合.

创建一个对象并为其添加属性或方法 就可以创建自定义对象.

var obj=new Object(),调用构造函数创建对象,如果构造函数没有参数,也可以这样写 var obj=new Object;


回到顶部