1.typeof 变量 (返回对应的数据类型的英文名(字符串))
var str = '字符串' console.log(typeof str);//返回的数据类型是string var un console.log(typeof un);//返回的数据类型是undefined var isNull = null console.log(typeof isNull);//null返回的object( null是一个空对象引用) console.log(typeof typeof(isNull));//typeof的typeof为string类型
typeof null 返回的是一个object的字符串其他返回的是对应的类型的字符串
function 返回的是function
object返回的是object
array返回的也是一个object
2.类型转换
(1)任意类型转字符串
方法一:toString调用(注:undefined不能使用)
var number = 10 var str = number.toString() console.log=(typeof str);//str为string类型 var un //undefined是不能调用toString var unstr = un.toSting()//注意:会报错
方法二:String调用
var un var unstr= String(un) console.log = (typeof unstr)//unstr为string类型
(2)任意类型转number类型
方法一:使用number方法转换
var str = '12.1a2a' var number = Number(str);//当出现无法转换的内容时会出现NaN console.log = (number);//输出的值为NaN console.log = (typeof number);//NaN的类型为number类型 var boll = false var number = Number(boll) console.log(number);//布尔类型转换为number时,true为1,false为0 var un var number = Number(un) console.log(number);//undefined无法转换为number,会出现NaN的值 var nu = null var number = Number(nu) console.log(number);//null转为number类型会出现0
方法二:使用parselnt或者parseFloat
//从前面开始截取能够转换的数值 如果前面没有可以转换的数值那么结果就是NaN var str = '13.1a3a' var number1 = parseInt(str);// parseInt 转换为整型 console.log(number1);//输出值为13 var number2 = parseFloat(str).toFixed()//parseFloat 转换浮点类型(小数点)/.toFixed() (保留几位小数) console.log(number2);//输出的值为13.1(截取到a前面)
重点:
1.任意类型转number类型无法转换会出现NaN NaN属于数值类型
2.null转number结果为0 undefined转number结果为NaN
3.isNaN专门判断当前是否是NaN类型 出现NaN返回true 没有返回false
console.log(isNaN(NaN));//输出为ture
(3)任意类型转换为boolean类型
var str = '' //非空则为true var bool = Boolean(str) console.log(bool);//输出为false var number = 0 //非0和非NaN则为true var bool = Boolean(unmber) console.log(bool);//输出为false // undefined和null转换为boolean都是false console.log(Boolean(undefined)) console.log(Boolean(null))
(4)无穷大(+Infinity)/无穷小(-Infinity)
var number1 = +Infinity //无穷大 var number2 = -Infinity //无穷小 console.log(typeof number1)