基本数据类型
- Undefined
- Null
- Boolean
- String
- Number
复杂数据类型
Object 它每个实例都具有下列属性和方法:
- constructor
- hasOwnProperty(propertyName): 检查给定的属性是否在当前对象实例中存在。
- isPrototypeOf(object):检查传入的对象是否是当前对象的原型。
- propertyIdEnumerable(propertyName):检查给定的属性是否能够使用 for-in 语句来枚举。
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString():返回对象的字符串表示。
- valueOf():返回对象的字符串、数值或布尔值表示,通常与 toString() 方法的返回值相同。
typeof
- "undefined"
- "boolean"
- "string"
- "number"
- "object"
- "function"
- "symbol"
浮点数
浮点数值的最高精度是17位小数
NaN 与任何值都不相等 isNaN(NaN) true
数值转换
Number()
| 数据类型 | 转换后的数据 |
|---|---|
| Boolean值 | true -> 1,false -> 0 |
| 数字 | 数字 |
| null | 0 |
| undefined | NaN |
| 字符串 | 1.字符串只包含数字,则将其转为十进制数值(前导的0被忽略); 2.含有有效的浮点格式,则转换为浮点数(前导的0被忽略); 3.字符串中包含有效的十六进制格式,'0xf',被转换为相同大小的十进制数值; 4.字符串是空,转换为0; 5.如果字符串中包含除上述格式之外的自负,则将其转换为 NaN |
| 对象 | 调用 valueOf() 方法,然后依照前面的规则转换返回的值,如果转换的结果为 NaN,则调用对象的 toString()方法,然后再次依照前面的规则转换返回的值 |
parseInt()
- 忽略字符串前面的空格,直到找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parseInt()会返回 NaN;如果第一个字符是数字字符,那么会继续解析,直到解析完所有后续字符或者遇到一个非数字字符。
- 如果是"0x"开头,会解析为16进制。
- 如果是"0"开头切后跟数字字符,则会当作八进制来解析。
parseFloat()
与parseInt()类似,parseFloat()从第一个字符开始解析每个字符,而且也是一直解析道字符串末尾,或者解析到遇到一个无效的浮点数数字字符为止。字符串中第一个小数点是有效的。 它始终会忽略前导的0。
相等操作符
| 数据类型 | 比较前转换的类型 |
|---|---|
| 有一个操作数是布尔值 | 先将其转为数值 false->0 true->1 |
| 一个操作数是字符串,另一个操作数是数值 | 字符串转换为数值 |
| 一个操作数是对象,另一个操作数不是 | 调用对象的 valueOf() 方法, 用得到的基本数据类型值按照前面的规则进行比较 |
| null 和 undefined | 相等 |
| 有一个操作数是 NaN | 相等操作符返回 false |
| 两个操作数都是对象 | 比较它们是不是同一个对象。 如果两个操作数指向同一个对象,则相等操作符返回 true |
注意:此处是相等操作符"==",而不是全等操作符"==="