用于检测给定变量的数据类型,有7种返回结果:
“undefined”值未定义“boolean” 布尔值“string” 字符串“number”数值或NaN“object”对象或null“function”函数“symbol”ES6新增,独一无二只有一个值,即undefined,使用var声明变量但未初始化时。 注意:判断一个变量的值是否为undefined
if(a == "undefined") × if(typeof a == "undefined") √ if(!a) √只有一个值,即null,表示一个空对象指针。所以使用typeof检测时会返回”object”。如果定义的变量准备用于保存对象,最好初始化为null而不是其他值。
实际上,undefined值是派生自null值的
alert(null == undefined) //返回true该类型只有两个值:true和false,和数字值0、1不是一回事,且区分大小写。调用转型函数Boolean()可将一个值转换为其对应的Boolean值。
数据类型转换为true的值转换为false的值BooleantruefalseString任何非空字符串“”(空串)Number任何非0数值0和NaNObject任何非空对象nullUndefined×undefined数值范围 最小数值:Number.MIN_VALUE (5e-324) 最大数值:Number.MAX_VALUE (1.797693…..7e+308) isFinite()函数判断是否位于最小和最大数值之间; 若某次计算结果超出数值范围,则该数值会被自动转换成特殊的Infinity(正无穷,正数除以0)、-Infinity(负无穷,负数除以0)
NaN非数值
0/0会返回NaN,任何涉及NaN的操作都会返回NaN;NaN与任何值都不相等,包括NaN本身;isNaN()函数:尝试将值转换为数值,不能转换则返回true; alert(NaN == NaN);//返回false 数值转换 三种方法: 转型函数Number(),用于任何数据类型 parseInt() 专门用于字符串(常用) 如果第一个字符是数字,则继续解析,直到遇到了一个非数字字符或解析完所有后续字符 parseInt(""); //空串返回NaN parseInt("1234blue"); //1234 parseInt("22.5"); //22 parseInt("0xf"); //15也可为parseInt()方法传入第二个参数,指定基数(多少进制)
parseInt("AF",16); //175 parseInt("AF"); //NaN - parseFloat()只解析十进制数,所以没有第二个参数
把一个值转换成String类型,有如下三种办法
toString() 数值、布尔值、对象和字符串值都有toString()方法,但null和unedfined值没有 var num = 10; num.toString(); //"10" //正常用法,不必传参数,但调用数值的toString()方法时可以传参,指明进制 num.toString(2); //"1010" num.toString(8); //"12" String()转型函数 如果值有toString()方法,则调用该方法返回相应结果如果值是null,则返回”null”如果值是undefined,则返回”undefined”使用加号操作符+