除了简单的表达式还有复杂的表达式,它是由简单表达式构成的,将简单表达式组合成复杂表达式最常见的方法就是使用运算符

一、表达式
表达式分为简单表达式和复杂表达式,但最后的结果均是返回一个值
1、简单表达式
简单表达式又称为原始表达式,由原始数据值构成,是表达式中最小的单位,简单表达式包含常量和变量,常量与变量相对应,变量相当于未知数。而常量相当于已知数,在程序运行中,常量不会被更改
110 // 数值常量
1.1001e7 // 数值常量 科学记数法
"兄弟连" // 字符串常量
常量返回值是其本身,所以它们又被称为原始值,除了字符串和数值外还包括boolean类型的true和false、null类型的唯一值null和正则表达式
true // 布尔类型常量
null // 空值常量
/\d{4}/ // 特殊字符常量
变量也是简单的表达式之一,变量如果没有被赋值会被默认为undefined,也就是说它最终会返回一个值
2、复杂表达式
2.1、使用运算符连接的复杂表达式
简单表达式与复杂表达式是相对存在的,复杂表达式可以说是简答表达式的组合,最常见的复杂表达式是有简单表达式和运算符组成的
var num = 1;
console.log(1 + 1); // 为复杂表达式
2.2、直接量表达式
直接量表达式又称为字面量表达式,它最终返回的值就是其本身,直接量表达式又分为函数直接量表达式、数组直接量表达式、对象直接量表达式
2.3、其它表达式
其它表达式包括数组元素访问表达式、对象属性访问表达式、函数调用表达式以及对象创建表达式
二、运算符
运算符又称为操作符,除算数元算符还有赋值运算符、关系运算符、逻辑运算符、位元算符和其它运算符,js中的运算符可以适用于不同的数据类型,当然也会涉及到类型转换的问题
1、算数运算符
运算符
含义
使用格式
本质
+
加法
a+b
本质
-
减法
a-b
本质
*
乘法
a*b
本质
/
除法
a/b
本质
%
取余/求模
a%b
本质
+
取正
+b
本质
-
取负
-b
本质
++
数值加1后赋值
a++ / ++a
a = a+1
–
数值减1后赋值
a-- / --a
a = a-1
// 这里重点说下++ 和 -- 运算,递增++ 和递减-- 符号可以放置在操作数的前面或者后面,
// 这种写法称为前增量和后增量或者前减量、后减量,如果单独使用没啥区别,
// 但在运算时、表达式中、流程控制中或者输出中会产生差异
var num = 1;
num++;
console.log(num); // 2
++num;
console.log(num); // 3
num--;
console.log(num); // 2
--num;
console.log(num); // 1
var num =1;
console.num(num++); // 1
console.log(++num); // 3
console.log(num--); // 3
console.log(--num); // 1
// 总结:
// 当在表达式中使用时,会出现前增量、先累加、后使用;后增量、先使用、后增加,减量与增量的规则一致
2、赋值运算符
运算符
含义
使用格式
常规表达式
=
赋值
a=b
a=b
+=
相加后赋值
a += b
a = a+b
-=
相减后赋值
a-=b
a = a-b
*=
相乘后赋值
a*=b
a = a * b
/=
相除后赋值
a/=b
a = a / b
%=
取余后赋值
a%=b
a = a%b
3、关系运算符
关系运算符又称比较运算符,用来判断运算符左右两个值的关系,或者比较运算符左右两个值的大小
运算符
含义
使用格式
| 大于| a>b
<| 小于| a
=| 大于等于| a>=b
<=| 小于等于| a<=b
| 等于| ab
!=| 不等于| a!=b
=| 全等于| a=b
!| 不等于| a!b
4、逻辑运算符
运算符
含义
使用格式
&&
逻辑与/并且
a&&b
逻辑或/或者
!
逻辑非
!a
逻辑与有短路现象,当判断第一个操作数为false时,就不会去判断第二个操作数
逻辑或也有段路现象,当判断第一个为true并且第二个为false也判定为true
逻辑非运算时,操作数会被转换为布尔值,并且取反,然后返回布尔值
5、位运算符
位运算在编程语言中位于最底层,它是按内存中数值的位来计算数值的。会涉及到计算机底层原理知识,一般不会用到,后面有时间会写一下相关的内容(待补充)
运算符
含义
使用格式
&
位与
b&a
位或
a
~
位非
~a
^
异或
b^a
<<
左移