JavaScript隐式类型转换和显示类型转换

隐式类型转换

 console.log('2' + 2) // 22
 console.log(2 + 2 + '2') // 42
 console.log('2' - 0 + 4) // 6 减法没有二义性的,字符串转成数字
 console.log(true + 3) // true被隐式转换成了1
 console.log(false - 3) // false被隐式转换成了0

显式类型转换

// 从左往右,遇到小数点或者其他字符就停止转换,只保留左边的整数部分
    console.log(parseInt('34')) // 34
    console.log(parseInt('34.99999')) // 34  直接把小数部分丢掉
    console.log(parseInt('34c')) // 34
    console.log(parseInt('c34')) // NaN
// 从左往右,遇到第二个小数点或者其他字符就停止转换,只保留左侧部分
    console.log(parseFloat('36'))
    console.log(parseFloat('36.333'))
    console.log(parseFloat('36.333.999'))
    console.log(parseFloat('36.33d3.999'))
    console.log(parseFloat('d36.333.999'))
 // Number更严格,只要字符串里不满足数字格式的,结果都是NaN
    console.log(Number('36'))
    console.log(Number('36.999'))
    console.log(Number('36.999.444')) // NaN
    console.log(Number('36.9d99')) // NaN
 // toFixed以后类型是string   
    var num = 36.234532
    console.log(num)
    console.log(num.toFixed(3))
 // NaN: not a number
    // 一个表达式,我本来期望得到一个数字,但是准换过程失败了,就会得到NaN
    console.log(parseInt('c34'))
    console.log(typeof NaN) // NaN的类型是number
    console.log(parseInt('c34') == NaN) // false  两个NaN是不能直接用等号判断的
    // isNaN用来判断一个值是否是NaN,是NaN就返回true,不是就返回false
    console.log( isNaN( parseInt('c34') ) ) // true
发布了62 篇原创文章 · 获赞 0 · 访问量 538

猜你喜欢

转载自blog.csdn.net/qq_43633053/article/details/105238761