Jst中==是如何进行比较的?
形如: a == b
一.当a 和b类型相同,则直接比较
如: “sss” == “sss” ; // true
二. 当a和b类型不同,会转换成相同类型在比较
那么当a和b类型不同时,如何进行转换的呢?
1.NaN与任何数比较都不相等,都是false;
NaN的意思是不是一个数字,number类型
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body><script> console.log( NaN == NaN ); console.log( NaN == "0" ); console.log( NaN == undefined ); console.log( NaN == null ); console.log( NaN == 8990);</script></body></html>
2.数字与字符串比较
形如 “a” == 18
会将字符串"a"转换成数字和数字(18)比较,如果字符串转不成数字,会转换成NaN。
测试如下:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body><script> console.log( "1" == 1 ); //true console.log( "11" == 1 ); //false console.log( "a1" == 1 ); //false console.log( "aaa"== 1 ); //false console.log( "0" == 1 ); //false</script> </body></html>
3.布尔类型与其他类型比较
形如: false == 其他类型
其他类型会转换成数字,bool类型也会转换成数字,在进行比较。
布尔类型中true会变成1,false会变成0
代码实例:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body><script> console.log( true == 1 ); //true console.log( false == 0 ); //true console.log( true == "1" ); //true console.log( false == "0" ); //true console.log( true == 111 ); //false console.log( true == "111" ); //false console.log( false == 111 ); //false console.log( false == "111" ); //false console.log( false == "a" ); //false</script> </body></html>
4.null和undefined比较为true
null == undefined 为true。都是没有值
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body><script> console.log(null == undefined);// true</script></body></html>
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。