这里的js基础只是个人经常会搞混的一些东西,不喜勿喷,不喜勿看。
1、NaN:Not a Number(不是一个数字),类型是Number,一种特殊的数字字符串与数字进行运算的结果是NaN
举几个例子:
1)常规型
var a="12";
var b=Number(a);//将字符串转换成数字
console.log(b);
输出结果:b=12
若a=“12abc”,若使用Number(a)转换,结果是NaN
若使用parseInt(a)转换,则将前几个字符是数字的转换成数字
若a=“abc12”,使用parseInt(a)转换,结果是NaN
2)object类型
var stu={
name:"zz",
age:18
}
var a=Number(stu);
console.log(a);
输出结果:NaN
若
var stu={
name:"zz",
age:18,
toString:function(){
return "abc";
}
}
console.log(Number(stu));
输出结果:NaN
若
var stu={
name:"zz",
age:18,
toString:function(){
return "123";
}
}
console.log(Number(stu));
输出结果:123
注:Number本质上是调用对象中的toString,将其内容转换成数字
2、===(绝对等于)和==(等于)的区别
先来看几个例子:
若console.log("123"=="123");
输出结果:true
若console.log("123"==="123");
输出结果:true
若console.log(123=="123");
输出结果:true
若console.log(123==="123");
输出结果:false
若console.log(abc=="abc");
输出结果:报错,无法执行,因为abc是变量,没有定义
通过上述例子可得出结论:==不考虑类型,只看值是否相等
===考虑类型,只有类型相同且值都一样时才相等
本文深入浅出地介绍了JavaScript中常见的基础概念,包括NaN的理解及应用、类型转换的细节以及==与===的区别等内容。

被折叠的 条评论
为什么被折叠?



