JavaScript 这些骚操作符了解一下,这可真不是一般的骚
2023-11-22 15:36:57
JavaScript 奇怪的操作符(一)——感叹号、问号、逻辑运算符、置位运算符
JavaScript 作为一门强大的脚本语言,除了我们常见的算术运算符、关系运算符、逻辑运算符等基础操作符之外,还有一些比较少见的,但是用好了却非常强大的骚操作符,本文将为大家介绍其中几种。
一、感叹号(!)
感叹号在 JavaScript 中有两种用法:
-
取反运算符:感叹号可以对一个值进行取反运算,即将 true 变成 false,false 变成 true。
console.log(!true); // false console.log(!false); // true
-
一元运算符:感叹号还可以作为一元运算符,将一个值转换为布尔值。
console.log(!!"hello"); // true console.log(!!""); // false
二、问号(?)
问号在 JavaScript 中有两种用法:
-
条件运算符:问号可以作为条件运算符,根据一个条件来选择两个值中的一个。
const age = 18; const message = (age >= 18) ? "你已经成年了" : "你未成年"; console.log(message); // "你已经成年了"
-
可选链操作符:问号还可以作为可选链操作符,用来访问可能不存在的对象属性或方法。
const user = { name: "John", age: 30, }; console.log(user?.name); // "John" console.log(user?.address?.city); // undefined
三、逻辑运算符
JavaScript 中有三个逻辑运算符:
-
与运算符(&&):与运算符将两个值进行逻辑与运算,只有当两个值都为 true 时,结果才为 true。
console.log(true && true); // true console.log(true && false); // false console.log(false && true); // false console.log(false && false); // false
-
或运算符(||):或运算符将两个值进行逻辑或运算,只要有一个值为 true,结果就为 true。
console.log(true || true); // true console.log(true || false); // true console.log(false || true); // true console.log(false || false); // false
-
非运算符(!):非运算符将一个值进行逻辑非运算,将 true 变成 false,false 变成 true。
console.log(!true); // false console.log(!false); // true
四、置位运算符
JavaScript 中有六个置位运算符:
-
左移运算符(<<):左移运算符将一个值向左移动指定位数,相当于乘以 2 的指定次方。
console.log(1 << 2); // 4 console.log(10 << 3); // 80
-
右移运算符(>>):右移运算符将一个值向右移动指定位数,相当于除以 2 的指定次方。
console.log(10 >> 2); // 2 console.log(100 >> 3); // 12
-
无符号右移运算符(>>>):无符号右移运算符将一个值向右移动指定位数,但不会改变符号位。
console.log(-10 >>> 2); // 1073741822 console.log(-100 >>> 3); // 268435456
-
与运算符(&):与运算符将两个值进行位与运算,结果为两个值的二进制位都为 1 的位。
console.log(10 & 5); // 0 console.log(11 & 13); // 9
-
或运算符(|):或运算符将两个值进行位或运算,结果为两个值的二进制位有一个为 1 的位。
console.log(10 | 5); // 15 console.log(11 | 13); // 15
-
异或运算符(^):异或运算符将两个值进行位异或运算,结果为两个值的二进制位不相同的位。
console.log(10 ^ 5); // 15 console.log(11 ^ 13); // 6
结语
以上便是 JavaScript 中一些比较少见的,但是用好了却非常强大的骚操作符,希望大家能够灵活运用这些操作符,写出更加简洁、优雅的代码。