本文总结JavaScript基础语法中易混淆的三个关键点:一是==与===在类型转换上的差异,二是!!运算符对非零数值的布尔化处理逻辑,三是parseInt与parseFloat在解析字符串数值时的行为区别,包括对小数点和前导零的处理规则。
代码示例如下:
/*
==与===运算符的类型转换差异JavaScript基础语法中,存在几个容易引发困惑的知识点。
*/
/*
==
===
*/
function de() {
var ab = 25; //数值类型
var ba = "25"; //字符串类型
if (ab == ba) { //==运算符会先进行类型转换,再进行比较。
//alert("b");
}
if (!(ab === ba)) { //===运算符不进行类型转换,直接比较值与类型,ab为数值,ba为字符串
//alert("a");
}
}
/*
!b
!!b
*/
布尔值转换与!!运算符逻辑function dd() {
var b= 1;
if (!!b) { //!b时,非0数值转为true后取反得false;!!b时,先转为布尔值再取反,还原为原始真值。
//alert("a");
}
}
/*
parseInt parseFloat
*/
parseInt与parseFloat数值解析区别function parse() {
var a = "18px";
var b = parseInt(a); //返回数值18
var c = parseInt(a, 10); //返回数值18,可指定进制参数
//alert(b);
alert(c);
var e = "18.2px";
var d = parseFloat(e);
alert(d)
/*
parseInt与parseFloat的区别在于,parseFloat转换时保留第一个小数点后的数字,但忽略后续的小数点。
parseFloat还会忽略字符串开头的0。
*/
}
window.onload = function () {
parse();
dd();
de();
}