Skip to content

JS中各种原始值类型转换表格

原始值转换成布尔转换为字符串转换为数字isFinitetypeof
1true'1'1truenumber
-1true'-1'-1truenumber
5.123true'5.123'5.123truenumber
0false'0'0truenumber
-0false'0'-0truenumber
document.allfalse[object HTMLAllCollection]NaNfalseundefined
Infinitytrue'Infinity'Infinityfalsenumber
-Infinitytrue'-Infinity'-Infinityfalsenumber
''false''0truestring
""false''0truestring
'1.5'true'1.5'1.5truestring
'one'true'one'NaNfalsestring
'0'true'0'0truestring
'-0'true'-0'-0truestring
' 'true' '0truestring
{}true[object Object]NaNfalseobject
[]true''0trueobject
['1']true'1'1trueobject
[1]true'1'1trueobject
['one']true'one'NaNfalseobject
truetrue'true'1trueboolean
falsefalse'false'0trueboolean
undefinedfalse'undefined'NaNfalseundefined
nullfalse'null'0trueobject
NaNfalse'NaN'NaNfalsenumber

MD文档

md
|    原始值   | 转换成布尔 |        转换为字符串        | 转换为数字 |  isFinite  |   typeof  |
|-------------|-----------|----------------------------|-----------|------------|-----------|
| 1           | true      | '1'                        | 1         | true       | number    |
| -1          | true      | '-1'                       | -1        | true       | number    |
| 5.123       | true      | '5.123'                    | 5.123     | true       | number    |
| 0           | false     | '0'                        | 0         | true       | number    |
| -0          | false     | '0'                        | -0        | true       | number    |
| document.all| false     | [object HTMLAllCollection] | NaN       | false      | undefined |
| Infinity    | true      | 'Infinity'                 | Infinity  | false      | number    |
| -Infinity   | true      | '-Infinity'                | -Infinity | false      | number    |
| ''          | false     | ''                         | 0         | true       | string    |
| ""          | false     | ''                         | 0         | true       | string    |
| '1.5'       | true      | '1.5'                      | 1.5       | true       | string    |
| 'one'       | true      | 'one'                      | NaN       | false      | string    |
| '0'         | true      | '0'                        | 0         | true       | string    |
| '-0'        | true      | '-0'                       | -0        | true       | string    |
| ' '         | true      |  ' '                       | 0         | true       | string    |
| {}          | true      | [object Object]            | NaN       | false      | object    |
| []          | true      | ''                         | 0         | true       | object    |
| ['1']       | true      | '1'                        | 1         | true       | object    |
| [1]         | true      | '1'                        | 1         | true       | object    |
| ['one']     | true      | 'one'                      | NaN       | false      | object    |
| true        | true      | 'true'                     | 1         | true       | boolean   |
| false       | false     | 'false'                    | 0         | true       | boolean   |
| undefined   | false     | 'undefined'                | NaN       | false      | undefined |
| null        | false     | 'null'                     | 0         | true       | object    |
| NaN         | false     | 'NaN'                      | NaN       | false      | number    |
|    原始值   | 转换成布尔 |        转换为字符串        | 转换为数字 |  isFinite  |   typeof  |
|-------------|-----------|----------------------------|-----------|------------|-----------|
| 1           | true      | '1'                        | 1         | true       | number    |
| -1          | true      | '-1'                       | -1        | true       | number    |
| 5.123       | true      | '5.123'                    | 5.123     | true       | number    |
| 0           | false     | '0'                        | 0         | true       | number    |
| -0          | false     | '0'                        | -0        | true       | number    |
| document.all| false     | [object HTMLAllCollection] | NaN       | false      | undefined |
| Infinity    | true      | 'Infinity'                 | Infinity  | false      | number    |
| -Infinity   | true      | '-Infinity'                | -Infinity | false      | number    |
| ''          | false     | ''                         | 0         | true       | string    |
| ""          | false     | ''                         | 0         | true       | string    |
| '1.5'       | true      | '1.5'                      | 1.5       | true       | string    |
| 'one'       | true      | 'one'                      | NaN       | false      | string    |
| '0'         | true      | '0'                        | 0         | true       | string    |
| '-0'        | true      | '-0'                       | -0        | true       | string    |
| ' '         | true      |  ' '                       | 0         | true       | string    |
| {}          | true      | [object Object]            | NaN       | false      | object    |
| []          | true      | ''                         | 0         | true       | object    |
| ['1']       | true      | '1'                        | 1         | true       | object    |
| [1]         | true      | '1'                        | 1         | true       | object    |
| ['one']     | true      | 'one'                      | NaN       | false      | object    |
| true        | true      | 'true'                     | 1         | true       | boolean   |
| false       | false     | 'false'                    | 0         | true       | boolean   |
| undefined   | false     | 'undefined'                | NaN       | false      | undefined |
| null        | false     | 'null'                     | 0         | true       | object    |
| NaN         | false     | 'NaN'                      | NaN       | false      | number    |

类型转换测试函数

js
let testArr = [1, -1, 5.123, 0, -0, document.all, Infinity, -Infinity, '', "", '1.5', 'one', '0', '-0', ' ', {}, [], ['1'], [1], ['one'], true, false, undefined, null, NaN]
let resultArr = []
for (let i = 0; i < testArr.length; i++) {
  try {
    resultArr.push({
      '': testArr[i],
      '转换成布尔': Boolean(testArr[i]),
      '转换为字符串': String(testArr[i]),
      '转换为数字': Number(testArr[i]),
      'isFinite': isFinite(testArr[i]),
      'typeof': typeof (testArr[i]),
    })
  } catch (e) {
    resultArr.push({
      '': testArr[i],
      '转换成布尔': Boolean(testArr[i]),
      '转换为字符串': String(testArr[i]),
      '转换为数字': Number(testArr[i]),
      'isFinite': '无效',
      'typeof': typeof (testArr[i]),
    })
  }
}

console.table(resultArr)
console.log(JSON.stringify(resultArr))
let testArr = [1, -1, 5.123, 0, -0, document.all, Infinity, -Infinity, '', "", '1.5', 'one', '0', '-0', ' ', {}, [], ['1'], [1], ['one'], true, false, undefined, null, NaN]
let resultArr = []
for (let i = 0; i < testArr.length; i++) {
  try {
    resultArr.push({
      '': testArr[i],
      '转换成布尔': Boolean(testArr[i]),
      '转换为字符串': String(testArr[i]),
      '转换为数字': Number(testArr[i]),
      'isFinite': isFinite(testArr[i]),
      'typeof': typeof (testArr[i]),
    })
  } catch (e) {
    resultArr.push({
      '': testArr[i],
      '转换成布尔': Boolean(testArr[i]),
      '转换为字符串': String(testArr[i]),
      '转换为数字': Number(testArr[i]),
      'isFinite': '无效',
      'typeof': typeof (testArr[i]),
    })
  }
}

console.table(resultArr)
console.log(JSON.stringify(resultArr))