ECMAScript 定义了 5 种简单数据类型(Undefined、Null、Boolean、Number、String)和一种复杂数据类型(Object),后续会分别进行说明。
typeof 用于检测给定变量的数据类型。
变量值类型 | typeof 返回值 |
---|---|
未定义 | undefined |
布尔值 | boolean |
字符串 | string |
数值 | number |
对象或者 null | object |
函数 | function |
typeof null
会返回 “object”,因为特殊值 null 被认为是一个空的对象引用。数据类型 | 转换为 true | 转换为 false |
---|---|---|
Boolean | true | false |
String | 非空字符串 | 空字符串 ” |
Number | 非零数字(包括无穷大) | 0 或 NaN |
Object | 对象 | null |
Undefined | undefined |
转换规则:
传入的参数类型 | 返回 |
---|---|
Boolean | true 和 false 分别被转换为 1 和 0 |
数字 | 返回传入的数字 |
null | 0 |
undefined | NaN |
字符串 | 后面单独说明 |
对象 | 调用 valueOf 方法,再按前面的规则转换返回的值。如果转换结果是 NaN,则调用 toString 方法,再按前面的规则转换返回的值 |
传入的参数类型是字符串的情况比较复杂,这里单独说明:
字符串格式 | 返回 |
---|---|
只包含数字(包括带正负号的情况) | 转换为十进制数值 |
有效浮点格式 | 转换为对应的浮点格式 |
有效的十六进制格式 | 转换为十进制数 |
空字符串 | 0 |
包含上述格式之外的字符 | NaN |
转换规则:
传入的参数类型 | 返回 |
---|---|
第一个非空格字符不是数字字符或者负号 | NaN |
空字符串 | NaN |
第一个非空格字符是数字字符 | 会继续解析,直到解析完或者遇到一个非数字字符 |
字面量 | 含义 |
---|---|
/n | 换行 |
/t | 制表 |
/b | 空格 |
/r | 回车 |
/f | 进纸 |
//|斜杠 | |
/’ | 单引号,用于字符串中包含单引号的情况 |
/” | 双引号,用于字符串中包含双引号的情况 |
/xnn | 以十六进制代码 nn 表示的一个字符( n 为 0 ~ F) |
/unnn | 以十六进制代码 nnnn 表示的一个 Unicode 字符( n 为 0 ~ F) |
转换规则:
输入值 | 返回结果 |
---|---|
值有 toString() 方法 | 调用该方法并返回相应的结果 |
null | “null” |
undefined | “undefined” |
var o = new Object();
Object 类型时所有他的实例的基础。即 Object 类型所具有的任何属性和方法也同样存在于更具体的对象中。Object 的每个实例都具有以下属性和方法——方法名 | 说明 |
---|---|
Constructor | 保存着用于创建当前对象的函数 |
hasOwnPRoperty(propertyName) | 判断给定的属性在当前对象实例中是否存在,其中的属性名是字符串形式传入 |
isprototypeOf(object) | 判断传入的对象是否是另一个对象的原型 |
propertyIsEnumerable(propertyName) | 判断给定的属性是否能够使用 for-in 语句,其中的属性名是字符串形式传入 |
toLocaleString() | 返回对象的字符串表示,考虑了本地时区 |
toString() | 返回对象的字符串表示 |
valueOf() | 返回对象的字符串、数值或布尔值表示,通常与 toString() 返回值相同 |
新闻热点
疑难解答