We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
难为了老夫的英语啊!!!!
先来一个小试牛刀?
这里有种感觉,我明明进来了,却还不能证明自己的身份
if ([0]) { console.log([0] == true); //false console.log(!![0]); //true } // 虽然[0] 进入了if循环,但是[0] == true没有直接联系 if ("potato") { console.log("potato" == false); //false console.log("potato" == true); //false } // 这里是不是很蒙蔽,明明已经进来了,但是不是true
解刨if语句
我们知道js有6中数据类型:
参考我之前的一篇文章
if判定也有6中默认为false的
**核心比较:**记住二个知识点,对于比较不严格的相等操作符
undefined和null互相相等,和其余的不相等
NaN和任何数据都不相等
所有的类型都转换成number进行比较
// 对象的valueOf比toString优先级高 var obj = { valueOf: function() {return 1}, toString: function() {return "2"} } obj == "1"; //true obj == "2"; //false
//流程分析 [0] == true //false // 工作原理,进行转换 //1. [0].toString() => 0 //2. true => 1 //3. 0 不等于 1 //4. 返回false "potato" == true; //1. 'potato' => NaN //字符串装换成数字, //2. true => 1 //3. NaN 不相等于任何字符 //4. 返回false var crazyObj = { toString: function() {return "2"} } crazyObj == 1; //false //1. 会调用对象的toString方法 得到2 //2. 2 不等于 1 //3. 返回false crazyObj == 2; //true // 对象的valueOf比toString优先级高 var obj = { valueOf: function() {return 1}, toString: function() {return "2"} } obj == "1"; //true obj == "2"; //false
核心知识点
字符类型相等
值相等
NaN null undefined 不等于任何其他类型的值(类型不相等) NaN不等于它本身
一般情况下都是用严格意义的相等
// 在自己已经肯定了类型后,有时候不需要用严格意义的相等 if(typeof fn === 'function') // 不是必须 if(typeof fn == 'function') // 我们知道typeof返回的一定是一个字符串,所以类型肯定已经相等了,就不需要用严格相等
// try 0 === false //false 类型不相等
The text was updated successfully, but these errors were encountered:
No branches or pull requests
判定和相等处处不同
原文链接
1. if判定
先来一个小试牛刀?
这里有种感觉,我明明进来了,却还不能证明自己的身份
解刨if语句
我们知道js有6中数据类型:
参考我之前的一篇文章
if判定也有6中默认为false的
2. 相等操作符(==)
**核心比较:**记住二个知识点,对于比较不严格的相等操作符
undefined和null互相相等,和其余的不相等
NaN和任何数据都不相等
所有的类型都转换成number进行比较
其他类型转换成数字的对比表
3. 严格意义的相等
核心知识点
字符类型相等
值相等
NaN null undefined 不等于任何其他类型的值(类型不相等) NaN不等于它本身
一般情况下都是用严格意义的相等
The text was updated successfully, but these errors were encountered: