细说JavaScript表达式和运算符号(JavaScript表达式和运算符号详解)

除了简单的表达式还有复杂的表达式,它是由简单表达式构成的,将简单表达式组合成复杂表达式最常见的方法就是使用运算符
![细说JavaScript表达式和运算符号详解](https://img-
blog.csdnimg.cn/direct/2781400b25be4b38bbf99d0c1b93d169.png)

一、表达式

表达式分为简单表达式和复杂表达式,但最后的结果均是返回一个值

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<b
=| 大于等于| 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
<< 左移 b<<a

| 右移| b>>a

| 无符号右移| b>>>a

6、其它运算符
运算符 含义 使用格式
typeof 查看类型 typeof a
delete 删除属性 delete a
void 取消返回值
in 验证属性是否存在 a in b
instanceof 验证对象是否为类的实例
?: 判断表达式,弱真则为执行问好后的表达式,若假则为冒号后面的表达式 a ? b : c
new 构造对象 new A
6.1、instanceof运算符
// 实例判断运算符,用于判断一个对象是否为一个类的实例
var nums = [1,2,3,4];
console.log(nums instanceof Array); // true
6.2、delete运算符
// 删除属性运算符,用来删除对象属性或数组中的元素,返回值为true或false

var obj = {name:"知数SEO"};
delete obj.name;
6.3、in运算符
// 属性验证运算符,用来验证一个对象是否包含某个属性,返回true和false
var obj = {name:"知数SEO"};
console.log("name" in obj);
6.4、void运算符
// 取消返回值运算符,用于解析表达式,并返回undefined
// 例如这个运算符用于阻止<a>标签跳转
<>a href="javascript:void(1=1)"点击链接跳转</a>
6.5、三元运算符(?:)
// 表达式 ? 真区间 : 假区间
// 表达式为真时,则执行真区间代码,否则执行假区间代码
console.log(1+1 == 2 ? "真区间" : "假区间");
posted @ 2024-01-19 21:25  知数网络  阅读(27)  评论(0编辑  收藏  举报