一、结论环节
通过typeof,可以看到,js中一共有6种数据类型:number,string,boolean,object,undefined,null。
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 string转number:如果string是一个只包含数字的字符串,则直接转成该字符串表示的数字,如果包含其他字符,则为NaN,注意,空字符串也能转成0。
2.2 boolean转number:true转成1,false转成0.
2.3 object、undefined、null转number:均为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 number转boolean:0转成false,其余的转成true。
3.2 string转boolean:空字符串转成false,其余的转成true。
3.3 所有的object都转成true,undefined和null转成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)
答案:传送门
如有疑问,看下图找答案!







网友评论