JS:关系运算符的隐式转化

JS:关系运算符的隐式转化

<body> <h1 style="color: cadetblue;">关系运算符的隐式转化</h1> <hr> <h3 class="a1">关系运算符 : > 、 >= 、 < 、<= 、 == 、 === 、!= 、 !== </h3> <!-- <h4></h4> --> <hr> <h2>1. 字符串,布尔值 和数字进行比较时,会先隐式的转化为数字类型,之后再比较</h2> <ul> <li> console.log("5" > 3); // true</li> <li>console.log(true == 1); // true</li> <li>console.log(false == 0); // true</li> <li>console.log(true == 2); // false</li> </ul> <h2>2.字符串 和 字符串比较时,按照从左到右的顺序 比较 字符在码表(ASCII)中的大小</h2> <ul> <li>console.log(5 > 12); //false</li> <li>console.log("5" > 12); //false</li> <li>console.log("5" > "12"); //true</li> <li>console.log("15" > "12"); //true</li> <li>console.log("1" > "12"); //false</li> </ul> <h2>3. null 和 undefined 在和数字比较时</h2> <h3> 3.1 如果遇到 == 不会进行在转化,没有可比性(false)</h3> <ul> <li>console.log(null == 0); // false</li> <li>console.log(null == 1);// false</li> <li>console.log(null == -1);// false</li> </ul> <h3> 3.2 如果遇到 > >= < <= 会隐式的转化为数字(null转化为 0 ,undefined 转化为 NaN),可以进行比较</h3> <ul> <li> console.log(null >= 0); // true</li> <li>console.log(null <= 0); // true</li> <li> console.log(null > -5); // true</li> <li> 因为undefined转化为NaN 所以undefined的判断都是false </li> <li>console.log(undefined == 0); // false</li> <li>console.log(undefined >= 0); // false</li> <li>console.log(undefined <= 0); // false</li> </ul> <h2> 4. null 和 undefined 在数值上是相等的(官方规定),类型上不相同 </h2> <ul> <li> var a; // undefined <br> var b = null; <br> console.log(a == b); //undefiend == null => true <br> console.log(a === b); //undefiend === null => false </li> </ul> <h2> 5. NaN 和 任何值 都不相等</h2> <ul> <li>console.log(NaN == NaN); //false</li> <li> console.log("NaN" == "NaN"); //true</li> </ul> </body> </html>
posted @ 2020-11-17 16:30  我真的吃不下了  阅读(353)  评论(0)    收藏  举报