编辑
2023-03-21
JavaScript
0
请注意,本文编写于 610 天前,最后修改于 590 天前,其中某些信息可能已经过时。

目录

表达式
算数运算符
注意
特殊点补充
一元运算符
自增和自减
自增
说明
注意,单独使用时
在表达式中:
自减
分类
a--:后减减
--a:前减减
Eg
逻辑运算符
分类
与运算
说明
运算符示例
或运算符
说明
运算符示例
非运算符
说明
运算符示例
比较运算符
说明
关系运算符为
特殊
两个字符串比较大小
typeof
说明
语法
常见typeof操作符返回值
delete操作符
说明
注意
三元运算符
说明
语法
Eg
参数
JS运算符优先级

表达式

由运算符链接的数据都称为表达式,表达式和值等效(表达式计算结果都是值,所以任何可以写值的地方都可以写表达式)

算数运算符

仅适用于Number类型

算数运算符说明
+加运算符
-减运算符
/除法运算符
*乘法运算符
%取余运算符

注意

  1. 任何值与NaN相加值都为NaN

  2. 可以使用加运算符对字符串进行拼接
    字符串拼接

  3. 任何值和字符串直接 进行加法运算,都会先转换为字符串,再进行拼接字符串
    字符串拼接-2
    由此,隐式类型转换:将任意类型的与空字符串进行加运算,可以实现转换为字符串

  4. 考虑运算顺序

  5. 任何值做减、乘、除运算都会自动转换为Number

特殊点补充

特殊

一元运算符

运算符说明
+正号不会对数字产生任何影响
-负号可以对数字进行负号的取反
对于非Number类型的值:
会将其转换为Number,然后进行运算
可以对一个其它数据类型使用+(正号),来将其转换为Number

自增和自减

自增

var a = 1; a++ console.log(a); //结果为: 2

说明

自增分两种,前加加(++a)和后加加(a++)

注意,单独使用时

不论是前加加还是后加加都会使a的值立刻发生变化,加一

在表达式中:

后++,先用旧值(原变量)参与表达式运算,表达式运算结束之后,变量本身再+1,此时变量本身发生改变,而改变的变量不参与表达式运算

前++,先变量本身+1,再使用发生改变的变量本身参与表达式运算

自减

通过自减可以使变量在自身的基础上减1

分类

a--:后减减

是变量的原值参与运算,运算结束后才会改变变量本身

--a:前减减

先变量本身-1,再使用发生改变的变量本身参与表达式运算

Eg

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

运算符示例

javascript
false || 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才会比较出大小来

typeof

说明

用来检测数据类型

语法

javascript
var a = 1; typeof(a)

常见typeof操作符返回值

xtypeof(x)
undefinedundefined
nullobject
true或falseboolean
任意数值或NANnumber
任意字符串string
任意函数function
任意非函数object

delete操作符

说明

delete是一元操作符,尝试删除其操作数指定的对象属性或数组元素

注意

被删除的属性或数组元素会被设置为undefined值

三元运算符

说明

条件成立则返回一个值,否则返回另一个值

语法

条件?条件成立时候的值:条件不成立时候的值

Eg

javascript
var a = 1; var b = 2; console.log(a>b?a:b); //结果为: 2

参数

值同样可以写表达式,完成嵌套多条件判断

JS运算符优先级

优先级预算类型关联性运算符
19圆括号n/a ( … ) 
18成员访问从左到右… . …
18需要计算的成员访问从左到右… [ … ]
18new (带参数列表)n/anew … ( … )
17函数调用  从左到右 … ( … )
17new (无参数列表)从右到左new …
16后置递增(运算符在后)n/a… ++
16后置递减(运算符在后)n/a… --
15逻辑非从右到左! …
15按位非从右到左~ …
15一元加法从右到左+ …
15一元减法从右到左- …
15前置递增从右到左++ …
15前置递减从右到左-- …
15typeof从右到左typeof …
15void从右到左void …
15delete从右到左delete …
14乘法从左到右… * …
14除法从左到右… / …
14取余从左到右… % …
13加法从左到右… + …
13减法从左到右… - …
12按位左移从左到右… << …
12按位右移从左到右… >> …
12无符号右移从左到右… >>> …
11小于从左到右…< …
11小于等于从左到右… <= …
11大于从左到右… > …
11大于等于从左到右… >= …
11in从左到右… in …
11instanceof从左到右… instanceof …
10等号从左到右… == …
10非等号从左到右… != …
10全等号从左到右… === …
10非全等号从左到右… !== …
9按位与从左到右… & …
8按位异或从左到右… ^ …
7按位或从左到右
6逻辑与从左到右… && …
5逻辑或从左到右
4条件运算符从右到左… ? … : …
3赋值从右到左… = …
3赋值从右到左… += …
3赋值从右到左… -= …
3赋值从右到左… *= …
3赋值从右到左… /= …
3赋值从右到左… %= …
3赋值从右到左… <<= …
3赋值从右到左… >>= …
3赋值从右到左… >>>= …
3赋值从右到左… &= …
3赋值从右到左… ^= …
3赋值从右到左
2yield从右到左yield …
2yield*从右到左yield* …
1spreadn/a... …
0逗号从左到右… , …

本文作者:RKLS

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!