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() 返回值相同 |
新闻热点
疑难解答