- 数据类型
- typeof
数据类型
5 种简单类型 Undefined Null Boolean Number String
1 种复杂类型 Object
typeof
对一个值使用typeof 操作符可能返回下列字符串
- undefined --- 这个值未定义
- boolean --- 这个值是布尔值
- string -- 这个值是字符串
- number -- 这个值是数值
- object -- 这个值是对象或null
- function -- 这个值是函数
undefined
是未初始化的定义
使用var 声明变量但未对其加以初始化
var message;
= var message = undefined;
作用:
区分空对象指针与未经初始化的变量.
包含undefined的变量与尚未定义的变量是不一样的。
直接使用未定义的变量会报错,但是这样的变量却可以使用唯一的操作typeof,返回的结果是undefined.
var message ;
alert(message); //undefined
alert(asd); //referenceError
alert(typoef message); //undefined
alert(typeof asd); //undefined
Null类型
- null 表示一个空对象指针.
使用typeof null ---> object - undefined的值是派生来自null的值
undefined == null ----> true
Boolean类型
各种数据类型与Boolean转换规则
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ""空字符串 |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | N/A(不适用的意思) | undefined |
Number
- IEEE754格式表示整数和浮点数值
- ECMA 262 定义了不同的数值字面量格式,十进制,八进制,十六进制
- 浮点数 以整数存储,e表示法(科学计数法),数值计算结果不准确,比如0.1+0.2 = 0.30000004,所以不要对其进行比较,判断。
- 数值范围
Infinity(正无穷) isFinite(param)--->判断是否为无穷 - NaN
NaN --> not a number
非数值
NaN与任何值都不相等,包括NaN本身。
isNaN()-->定义了一个数是否可以转换成数值,true能够转换,false转换失败。 - 数值转换
Number()、parseInt()、parseFloat()
Number
类型 | 值 | 结果 |
---|---|---|
Boolean | true | 1 |
Boolean | false | 0 |
数值 | 简单地传入和返回 | -- |
null | 0 | -- |
undefined | NaN | -- |
parseInt(str, 8/10/16/2)
parseInt("") ----> NaN
parseInt("123glay")--->123
parseInt()支持指定进制的转换
parseFloat()不支持指定进制转换
Number("") =0
Number(null) =0
parseInt("") = NaN
Number("hello world!") = NaN
String
定义:
字符串,由零或多个16位Unicode字符组成的字符序列。
字符字面量
转义
字符串的特点
字符串不可变
转换为字符串
toString(),几乎每一个值都有这个方法,除了null, undefined.
结果: 返回相应值的字字符串表示。
String()
想调用toString(),对于null和undefined,返回这两个值的字面量
String(null) ---- 'null'
String(undefined) ----- 'undefined'
PS: 若你觉得可以、还行、过得去、甚至不太差的话,可以“关注”一下,就此谢过!