javascript数据类型的一些基本知识
var message;
//未声明 和未初始化返回值均为undefined
console.log(typeof('text')); //string
console.log(typeof(16.0)); //number
console.log(typeof(message)); //undefined
console.log(typeof(noment)); //undefined
console.log(typeof(null)); //object
console.log(Boolean(true)); //true
console.log(Boolean(false)); //false
console.log(Boolean('str')); //true
console.log(Boolean('')); //空字符串为false
console.log(Boolean(123)); //true
console.log(Boolean(0)); //false
console.log(Boolean(NaN)); //false
NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用来表示
一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)
isNaN() 方法在接受一个值后,会尝试将一个值转换为数值,假如不能返回数值则返回true,否则反之
console.log(isNaN(123.1)); //false
console.log(isNaN('12')); //false 12可以转换为数值
console.log(isNaN('abc')); //true adc 不能转化为数值
console.log(Number('abc')); //NaN 纯字符不能转化为Num
console.log(Number('')); //0 字符串为空 转化为0
console.log(Number(123)); //123
console.log(Number('123')); //123 数字字符串可以转化
console.log(Number(false)); //0 布尔值 false转化为0
Number()函数在转换字符串是比较复杂而且不够合理,parseInt()更多的是看其是否符合数值模式,它会忽略前面的空格直到找到
第一个非空格的字符串,如果不是数字字符或者符号,返回NaN,否则会继续解析第二个字符,直到解析完成所有的后续字符
console.log(Number('123b')); //NaN Number方法中含字母字符不能转化为Num
console.log(parseInt('123b')); //123
console.log(parseInt('')); //NaN
//parseFloat()和parseInt()类似,区别是第二个小数点和之后的字符都会忽略,并且会始终忽略前导的0
console.log(parseFloat('12.56.78')); //12.56
console.log(parseFloat('056')); //56
String方法和toString都可以将数值转化为字符串。
String()函数遵循下列规则:
如果值有toString()方法,则调用该方法,返回相应的结果
如果值为null,则返回"null"
如果值为undefined,则返回"undefined"
var num = 134;
console.log(num.toString()); //
console.log(String(num));