表达式
3.14 //数字直接量
"hello world" //字符串直接量
/pattern/ //正则表达式直接量
true //返回一个布尔值: 真
false //返回一个布尔值: 假
null //返回一个值: 空
this //返回“当前”对象
i //返回变量i的值
sum //返回sum的值
undefined //undefined是全局变量,和null不同,它不是一个关键字
操作符
1.算术运算符
(+, -, *, /, %, **): 普通的加、减、乘、除、取余运算,其中**为次方运算符。
2.一元运算符
(++, --, +, -):一些只需要一个操作数的运算符,注意:++, --放在变量左右侧的差别,放在变量的左侧是先自增(减),再取值,放在右侧则相反。
++是递增操作符,--是递减操作符
i++ 先赋值 后自加
i-- 先赋值 后自减
--i 先自减 再赋值
++i 先自加 再赋值
3.赋值运算符
(=, +=, -=, *=, /=, %=(取余)):将某个常量或变量或表达式的值赋值给另一个变量,注意:ES6新增的解构赋值。
乘法/赋值(*=)
除法/赋值(/=)
取于/赋值(%=)
加法/赋值(+=)
减法/赋值(-=)
左移/赋值(<<=)
有符号右移/赋值(>>=)
无符号右移/赋值(>>>=)
4.相等运算符
(==, !=, ===, !==):用于比较左右的操作数是否相等。
相等和不相等 == / !=
这两个操作符都会先转换操作数(通常称为 强制转型),然后再比较它们的相等性
全等和不全等 === / !==
除了在比较之前不转换操作数之外,全等和不全等操作符 与 相等和不相等操作符没什么区别
console.log("55" == 55);
输出:true //因为转换后相等
console.log("55" === 55);
输出: false //因为不同的数据类型不相等
console.log(undefined == null);
输出:true
console.log(undefined === null);
输出: false
5.关系运算符
(>, <, >=, <=): 用于比较操作符左右的操作数的大小。
6.位操作符
(&, |, ~, ^, <<, >>, >>>): 将其操作数转化为二进制后,进行与、或、非、异或等操作运算,最终返回JS中的一个数值。其中>>>为无符号右移。
按位非(NOT): 按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码。
按位与(AND): 按位与操作符由一个和号字符( & )表示
按位或(OR): 按位或操作符由一个竖线符号(|)表示
按位异或(XOR): 按位异或操作符由一个插入符号(^)表示
左移 : 左移操作符由两个小于号(<<)表示,这个操作符会将数值的所有位向左移动指定的位数。
有符号的右移:该操作符由两个大于号(>>)表示,这个操作符会将数值向右移动
无符号右移 : 该操作符由 3 个大于号(>>>)表示
7.逻辑运算符
(&&, ||, !): 主要通过与、或、非来判断一个表达式的值是否为true。注意:与和或操作具有短路计算效果。&&(与) :找第一个为false的值并返回
&&(与) :找第一个为false的值并返回
返回只有两种结果 true false
只要有一个条件不成立,返回false
||(或):找第一个为true的值并返回
返回只有两种结果 true false
只要有一个条件成立,返回true
! (非)
说明:
1)、无论操作数是什么数据类型,逻辑非都会返回一个布尔值
2)、逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再 对其求反。
3)、同时使用两个逻辑非操作符时,第一个逻辑非操作会基于无论什么操作数返回一个布尔值
网友评论