JS中一定要了解的数据类型和数据转换

来源 | http://www.fly63.com/article/detial/6632
一、数据类型
前言
正文
var age = 18;console.log(typeof age); // 'number'
Boolean字面量:true和false,区分大小写
计算机内部存储:true为1,false为0
二、数据类的转换
undefined与null相等,但不恒等(===)
一个是number一个是string时,会尝试将string转换为number
隐式转换将boolean转换为number,0或1
隐式转换将Object转换成number或string,取决于另外一个对比量的类型
对于0、空字符串的判断,建议使用 “===”
“==”会对不同类型值进行类型转换再判断,“===”则不会.它会先判断两边的值类型,类型不匹配时直接为false
var a = Number('1');var b = Number(1);var c = Number('c');var d = Number(null);var e = Number(undefined);console.log(a,b,c,d,e); // 1 1 NaN 0 NaN// Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
String(1234); // "1234"String('abcd'); // "abcd"String(true); // "true"String(undefined); // "undefined"String(null); // "null"
var a = Boolean('0');var b = Boolean(0);var c = Boolean('1');var d = Boolean(null);var e = Boolean(undefined);var f = Boolean(NaN);console.log(a,b,c,d,e,f); //true false true false false false// 0、''(空字符串) 、null、 undefined 、NaN 会转换成false 其它都会转换成true
var a = parseFloat('1.2df'); //1.2var b = parseFloat('1.3.4'); //1.3var c = parseFloat('c12'); //NaNvar d = parseFloat(null); //NaNvar e = parseFloat(undefined); //NaNconsole.log(a,b,c,d,e);// parseFloat() 把字符串转换成浮点数// parseFloat()和parseInt非常相似,// 不同之处在与parseFloat会解析第一个 . 遇到第二个.或者非数字结束// 如果解析的内容里只有整数,解析成整数
var a = parseInt('1.2df'); //var b = parseInt(1);var c = parseInt('c12');var d = parseInt(null);var e = parseInt(undefined);console.log(a,b,c,d,e); //1 1 NaN NaN NaN// 如果第一个字符是数字会解析,直到遇到非数字结束// 如果第一个字符不是数字或者符号就返回NaN
2.3 字符串特别说明
var s = '我很喜欢 \"雷锋 \'的精神\' \"';console.log(s);
var str = 'Hello World';console.log(str.length);

评论
