0
点赞
收藏
分享

微信扫一扫

【JavaScript】5_常见的运算符(三种逻辑运算符+关系运算符)

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>

举报

相关推荐

逻辑运算符

0 条评论