介绍
本文是在学习JS所做的学习笔记,所有笔记内容请看:JS学习笔记
比较运算符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
关系运算符非数值的情况
-对于非数值进行比较,会将其转换成数字,再进行比较
-如果比较符号两边都是字符串,则不会转换成数字进行比较,会比较
两个的unicode编码。
比较字符编码时,是一位一位进行比较
var result = true > 1;
console.log(1>=true);// 输出true
console.log(1>"0");// 输出 true,"0"被转换成 0
console.log(10>null); // 输出true,null 被转换成 0
console.log(10>"hello") // "hello" 会被转成 NaN,所以结果为 false
</script>
</head>
<body>
</body>
</html>
相等运算符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
相等 == 运算符比较两个值是否相等:
如果相等返回true,如果不想等返回false
使用 == 来做相等运算
- 当使用== 比较两个值时,如果值得类型不同,会自动进行类型转换
转换成相同得类型,然后再进行比较
不想等 != 判断两个值是否相等
- 也会进行自动得类型转换,然后再进行判断两者是否相等
=== 全等
-用来判断两个值是否全等,它和相等类似,不同的是不会进行自动得
类型转换,如果两个值类型不同,直接返回false
!== 不全等
- 用来判断两个值是否不全等,也不会进行自动得类型转换
//true,进行了自动类型得转换,大部分情况转换成了数字,然后进行
// 比较
console.log("1" == 1)
// 字符串和bool值都转换成了number,true->1,"1"->1
// 输出结果为 true
console.log(true == "1")
// 输出结果为false
console.log(null == 0)
null > 0 // null 转化为 number,为 0,所以 0 > 0 结果为 false。
null >= 0 // null 转化为 number,为 0 >= 0,所以结果为 true。
null == 0 // null在做相等判断时,不进行转型,所以 null 和 0 为不同类型数据,结果为 false
undefined 衍生自 null,所以这两个值做相等判断时,会返回true
// 输出结果为 true
console.log( undefined == null)
NaN 不和任何值相等,包括其本身
// 输出结果为false
console.log(NaN == "1")
console.log(NaN== undefined) //false
console.log(NaN == NaN) // false
// 如何判断一个值是否是NaN
console.log(isNaN(b)) // 检查b是否是NaN
// 输出结果为false,
console.log("1" != 1)
// 输出false,没有进行自动得类型转换
console.log("123" === 123)
// 输出结果为 false,没有进行自动得类型转换
console.log(undefined === null)
console.log(1 !="1")// 输出结果为false,会进行自动得类型转换
console.log(1 !== "1") // 输出结果为true,没有进行自动的类型转换
</head>
<body>
</body>
</html>