由运算符链接的数据都称为表达式,表达式和值等效(表达式计算结果都是值,所以任何可以写值的地方都可以写表达式)
仅适用于Number类型
算数运算符 | 说明 |
---|---|
+ | 加运算符 |
- | 减运算符 |
/ | 除法运算符 |
* | 乘法运算符 |
% | 取余运算符 |
任何值与NaN相加值都为NaN
可以使用加运算符对字符串进行拼接
任何值和字符串直接 进行加法运算,都会先转换为字符串,再进行拼接字符串
由此,隐式类型转换:将任意类型的与空字符串进行加运算,可以实现转换为字符串
考虑运算顺序
任何值做减、乘、除运算都会自动转换为Number
运算符 | 说明 |
---|---|
+ | 正号不会对数字产生任何影响 |
- | 负号可以对数字进行负号的取反 |
对于非Number类型的值: | |
会将其转换为Number,然后进行运算 | |
可以对一个其它数据类型使用+(正号),来将其转换为Number |
var a = 1; a++ console.log(a); //结果为: 2
自增分两种,前加加(++a)和后加加(a++)
不论是前加加还是后加加都会使a的值立刻发生变化,加一
后++,先用旧值(原变量)参与表达式运算,表达式运算结束之后,变量本身再+1,此时变量本身发生改变,而改变的变量不参与表达式运算
前++,先变量本身+1,再使用发生改变的变量本身参与表达式运算
通过自减可以使变量在自身的基础上减1
是变量的原值参与运算,运算结束后才会改变变量本身
先变量本身-1,再使用发生改变的变量本身参与表达式运算
var a = 1; a-- console.log(a); //结果为: 0
只有所有都为true,&&运算结果才是true
javascript/*
与运算符使用&&表示
*/
var a = ture,b = true;
var c = a && b;
console.log(c);
//结果为:
true
只要其中有一个为true,||运算结果就是true
javascriptfalse || false;
// 这个||语句计算结果为false
true || false;
// 这个||语句计算结果为true
false || true || false;
// 这个||语句计算结果为true
把true变成false,false变成true
! true; // 结果为false ! false; // 结果为true ! (2 > 5); // 结果为true
也称为关系运算符
关系运算符 | 说明 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于【非严格等于,允许隐式类型转换,仅比较值是否相等】 |
=== | 严格等于,无法进行隐式类型转换 |
!= | 不等于,对应== ,不严格只判断值是否相等 |
!== | 不等于,对应===,严格等于,判断类型和值是否都相等 |
(1).比较的是字符的ASCII码的大小
(2).首先从第一个字符开始比较,如果第一个字符无法比较出大小,则比较第二个,以此类推
(3).以"abcDef"和"abcmef"为例子,从字符"a"开始比较,直到遇到D和m才会比较出大小来
用来检测数据类型
javascriptvar a = 1;
typeof(a)
x | typeof(x) |
---|---|
undefined | undefined |
null | object |
true或false | boolean |
任意数值或NAN | number |
任意字符串 | string |
任意函数 | function |
任意非函数 | object |
delete是一元操作符,尝试删除其操作数指定的对象属性或数组元素
被删除的属性或数组元素会被设置为undefined值
条件成立则返回一个值,否则返回另一个值
条件?条件成立时候的值:条件不成立时候的值
javascriptvar a = 1;
var b = 2;
console.log(a>b?a:b);
//结果为:
2
值同样可以写表达式,完成嵌套多条件判断
优先级 | 预算类型 | 关联性 | 运算符 |
---|---|---|---|
19 | 圆括号 | n/a | ( … ) |
18 | 成员访问 | 从左到右 | … . … |
18 | 需要计算的成员访问 | 从左到右 | … [ … ] |
18 | new (带参数列表) | n/a | new … ( … ) |
17 | 函数调用 | 从左到右 | … ( … ) |
17 | new (无参数列表) | 从右到左 | new … |
16 | 后置递增(运算符在后) | n/a | … ++ |
16 | 后置递减(运算符在后) | n/a | … -- |
15 | 逻辑非 | 从右到左 | ! … |
15 | 按位非 | 从右到左 | ~ … |
15 | 一元加法 | 从右到左 | + … |
15 | 一元减法 | 从右到左 | - … |
15 | 前置递增 | 从右到左 | ++ … |
15 | 前置递减 | 从右到左 | -- … |
15 | typeof | 从右到左 | typeof … |
15 | void | 从右到左 | void … |
15 | delete | 从右到左 | delete … |
14 | 乘法 | 从左到右 | … * … |
14 | 除法 | 从左到右 | … / … |
14 | 取余 | 从左到右 | … % … |
13 | 加法 | 从左到右 | … + … |
13 | 减法 | 从左到右 | … - … |
12 | 按位左移 | 从左到右 | … << … |
12 | 按位右移 | 从左到右 | … >> … |
12 | 无符号右移 | 从左到右 | … >>> … |
11 | 小于 | 从左到右 | …< … |
11 | 小于等于 | 从左到右 | … <= … |
11 | 大于 | 从左到右 | … > … |
11 | 大于等于 | 从左到右 | … >= … |
11 | in | 从左到右 | … in … |
11 | instanceof | 从左到右 | … instanceof … |
10 | 等号 | 从左到右 | … == … |
10 | 非等号 | 从左到右 | … != … |
10 | 全等号 | 从左到右 | … === … |
10 | 非全等号 | 从左到右 | … !== … |
9 | 按位与 | 从左到右 | … & … |
8 | 按位异或 | 从左到右 | … ^ … |
7 | 按位或 | 从左到右 | … |
6 | 逻辑与 | 从左到右 | … && … |
5 | 逻辑或 | 从左到右 | … |
4 | 条件运算符 | 从右到左 | … ? … : … |
3 | 赋值 | 从右到左 | … = … |
3 | 赋值 | 从右到左 | … += … |
3 | 赋值 | 从右到左 | … -= … |
3 | 赋值 | 从右到左 | … *= … |
3 | 赋值 | 从右到左 | … /= … |
3 | 赋值 | 从右到左 | … %= … |
3 | 赋值 | 从右到左 | … <<= … |
3 | 赋值 | 从右到左 | … >>= … |
3 | 赋值 | 从右到左 | … >>>= … |
3 | 赋值 | 从右到左 | … &= … |
3 | 赋值 | 从右到左 | … ^= … |
3 | 赋值 | 从右到左 | … |
2 | yield | 从右到左 | yield … |
2 | yield* | 从右到左 | yield* … |
1 | spread | n/a | ... … |
0 | 逗号 | 从左到右 | … , … |
本文作者:RKLS
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!