js有哪些数据类型,以及js数据类型之间如何互相转化

2020-06-16  本文已影响0人  萤火虫叔叔

一、结论环节

通过typeof,可以看到,js中一共有6种数据类型:numberstringbooleanobjectundefinednull

console.log(typeof(0)) //number
console.log(typeof('')) //string
console.log(typeof(true)) //boolean
console.log(typeof({})) //object
console.log(typeof(undefined)) //undefined
console.log(typeof(null)) //null

//注意,NaN属于number,NaN表示非数字
console.log(typeof(NaN)) //number

二、实验环节

1. 其他类型转成string

string类型最神通广大,所有类型都可以转化成string

console.log(String(0)) //0
console.log(String(true)) //true
console.log(String({})) //[object Object]
console.log(String(undefined)) //undefined
console.log(String(null)) //null

//ps,如果想以json字符串的方式打印出object类型的数据,可以
console.log(JSON.stringify({name: 'jack'})) // 打印:{"name":"jack"}
2. 其他类型转成number

2.1 stringnumber:如果string是一个只包含数字的字符串,则直接转成该字符串表示的数字,如果包含其他字符,则为NaN,注意,空字符串也能转成0
2.2 booleannumbertrue转成1false转成0.
2.3 objectundefinednullnumber:均为NaN

console.log(Number('')) //打印:0
console.log(Number('        ')) //打印:0
console.log(Number('0')) //打印:0
console.log(Number('123')) //打印:123
console.log(Number('abc')) //打印:NaN
console.log(Number(true)) //打印:1
console.log(Number({})) //打印:NaN
console.log(Number(undefined)) //打印:NaN
console.log(Number(null)) //打印:NaN
3. 其他类型转成boolean

3.1 numberboolean0转成false,其余的转成true
3.2 stringboolean:空字符串转成false,其余的转成true
3.3 所有的object都转成trueundefinednull转成false

console.log(Boolean(0)) //打印: false
console.log(Boolean(-999)) //打印: true
console.log(Boolean('')) //打印: false
console.log(Boolean('0')) //打印: true
console.log(Boolean({})) //打印: true
console.log(Boolean(undefined)) //打印: false
console.log(Boolean(null)) //打印: false

console.log(Boolean('      ')) //打印: true

值得注意的是,空格,制表符,换行符,回车符等空白符转成number都是0,但是如果转成boolean,却是true

console.log(Number('')) //打印: 0
console.log(Number('  ')) //打印: 0
console.log(Number('\t\n\r ')) //打印: 0
console.log(Boolean('')) //打印: false
console.log(Boolean('  ')) //打印: true
console.log(Boolean('\t\n\r ')) //打印: true
4. 其他类型转成object

只有json字符串可以转成object

console.log(JSON.parse("{\"name\":\"jack\"}")) //打印:{ name: 'jack' }

留一个作业,下面这两个的打印结果是什么?

console.log('' == true)
console.log('  ' == true)

答案:传送门


如有疑问,看下图找答案!


上一篇 下一篇

猜你喜欢

热点阅读