Skip to content

JavaScript数据类型转换表

真假值typeof->字符串isFinite->数字->数字->isFinite等于本身
undefinedundefined'undefined'XnullX-
nullobject'null'有限数0有限数-
falseboolean'false'有限数0有限数-
''string''有限数0有限数-
""string''有限数0有限数-
0number'0'有限数0有限数-
-0number'0'有限数-0有限数-
NaNnumber'NaN'XNaNX
trueboolean'true'有限数1有限数-
'1.2'string'1.2'有限数1.2有限数-
'one'string'one'XNaNX-
1number'1'有限数1有限数-
Infinitynumber'Infinity'XInfinityX-
-Infinitynumber'-Infinity'X-InfinityX-
{}object'[object Object]'XNaNX-
[]object''有限数0有限数-
[9]object'9'有限数9有限数-
['a']object'a'XNaNX-

JS中一共有6种假值,其他都是真值

js
undefined
null
false  
NaN
'' // 或者""
0
undefined
null
false  
NaN
'' // 或者""
0

isFinite()

JS种的相等判断==与===

测试代码

js
let allType = [
    undefined,
    null,
    false,
    '',
    "",
    0,
    -0,
    NaN,
    true,
    "1.2",
    "one",
    1,
    Infinity,
    -Infinity,
    {},
    [],
    [9],
    ['a'],
]
let ResultTable = []
for (let i = 0; i < allType.length; i++) {
    ResultTable.push({
        // '序号':i+1,
        '': allType[i],
        '真假值': !!allType[i] ? '' : '',
        'typeof': typeof (allType[i]),
        '转换为字符串': String(allType[i]),
        'isFinite': isFinite(allType[i]) ? '有限数' : 'X',
        '转换为数字': Number(allType[i]),
        '转换数字后isFinite': isFinite(Number(allType[i])) ? '有限数' : 'X',
        '是否等于它本身': allType[i] === allType[i] ? '-' : ''
    })
}
console.table(ResultTable)
let allType = [
    undefined,
    null,
    false,
    '',
    "",
    0,
    -0,
    NaN,
    true,
    "1.2",
    "one",
    1,
    Infinity,
    -Infinity,
    {},
    [],
    [9],
    ['a'],
]
let ResultTable = []
for (let i = 0; i < allType.length; i++) {
    ResultTable.push({
        // '序号':i+1,
        '': allType[i],
        '真假值': !!allType[i] ? '' : '',
        'typeof': typeof (allType[i]),
        '转换为字符串': String(allType[i]),
        'isFinite': isFinite(allType[i]) ? '有限数' : 'X',
        '转换为数字': Number(allType[i]),
        '转换数字后isFinite': isFinite(Number(allType[i])) ? '有限数' : 'X',
        '是否等于它本身': allType[i] === allType[i] ? '-' : ''
    })
}
console.table(ResultTable)