【JavaScript】5_常见的运算符(三种逻辑运算符+关系运算符)
【摘要】 5、逻辑运算符1! 逻辑非! 可以用来对一个值进行非运算它可以对一个布尔值进行取反操作true --> falsefalse --> true如果对一个非布尔值进行取反,它会先将其转换为布尔值然后再取反可以利用这个特点将其他类型转换为布尔值类型转换转换为字符串显式转换String()隐式转换+ ""转换为数值显式转换Number()隐式转换+转换为布尔值显式转换Boolean()隐式转换!!...
5、逻辑运算符1
! 逻辑非
- ! 可以用来对一个值进行非运算
- 它可以对一个布尔值进行取反操作
true --> false
false --> true - 如果对一个非布尔值进行取反,它会先将其转换为布尔值然后再取反
可以利用这个特点将其他类型转换为布尔值 - 类型转换
转换为字符串
显式转换
String()
隐式转换
+ ""
转换为数值
显式转换
Number()
隐式转换
+
转换为布尔值
显式转换
Boolean()
隐式转换
!!
&& 逻辑与
|| 逻辑或
<script>
let a = true
a = !a
// console.log(a)
a = 123
a = !!a
console.log(typeof a, a)
</script>
6、逻辑运算符2
&& 逻辑与
- 可以对两个值进行与运算
- 当&&左右都为true时,则返回true,否则返回false
- 与运算是短路的与,如果第一个值为false,则不看第二个值
- 与运算是找false的,如果找到false则直接返回,没有false才会返回true
- 对于非布尔值进行与运算,它会转换为布尔值然后运算
但是最终会返回原值 - 如果第一个值为false,则直接返回第一个值
如果第一个值为true,则返回第二个值
|| 逻辑或
- 可以对两个值进行或运算
- 当||左右有true时,则返回true,否则返回false
- 或运算也是短路的或,如果第一个值为true,则不看第二个值
- 或运算是找true,如果找到true则直接返回,没有true才会返回false
- 对于非布尔值或运算,它会转换为布尔值然后运算
但是最终会返回原值 - 如果第一个值为true,则返回第一个
如果第一个值为false,则返回第二个
<script>
let result = true && true // true
result = true && false // false
result = false && true // false
result = false && false // false
// true && alert(123) // 第一个值为true,alert会执行
false && alert(123) // 第一个值为false,alert不会执行
// true && true -> true
result = 1 && 2 // 2
// true && false -> false
result = 1 && 0 // 0
// false && false -> false
result = 0 && NaN // 0
result = true || false // true
result = false || true // true
result = true || true // true
result = false || false // false
// false || alert(123) // 第一个值为false,alert会执行
true || alert(123) // 第一个值为true,alert不会执行
result = 1 || 2 // 1
result = "hello" || NaN // "hello"
result = NaN || 1 // 1
result = NaN || null // null
console.log(result)
</script>
7、关系运算符1
关系运算符
- 关系运算符用来检查两个值之间的关系是否成立
成立返回true,不成立返回false
\>用来检查左值是否大于右值
/>=
- 用来检查左值是否大于或等于右值
< - 用来检查左值是否小于右值
<= - 用来检查左值是否小于或等于右值
注意:
当对非数值进行关系运算时,它会先将前转换为数值然后再比较
当关系运算符的两端是两个字符串,它不会将字符串转换为数值,
而是逐位的比较字符的Unicode编码
利用这个特点可以对字符串按照字母排序
注意比较两个字符串格式的数字时一定要进行类型转换
<script>
let result = 10 > 5 // true
result = 5 > 5 // false
result = 5 >= 5 // true
result = 5 < "10" // true
result = "1" > false // true
result = "a" < "b" // true
result = "z" < "f" // false
result = "abc" < "b" // true
result = "12" < "2" // true
result = +"12" < "2" // false
// 检查num是否在5和10之间
let num = 4
// result = 5 < num < 10 // 错误的写法
result = num > 5 && num < 10
console.log(result)
</script>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)