赋值运算符
+=:可以将符号右侧的变量的值赋值给符号左侧的变量
a+=5等价于a=a+5
-=、*=、/=、%=:原理都差不多
关系运算符
通过关系运算符比较两个值之间的大小关系。如果关系成立返回true,如果关系不成立,返回false
>:判断符号左侧的值是否大于右侧的值,如果大于则返回true,不大于则返回假
>=:大于等于
<:小于
<=:小于等于
原理跟数学的符号意思差不多
非数值的情况:
对于非数值进行比较时,会将其转换为数字,然后再比较。任何值和NaN做比较时都是false
如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而是会分别比较字符串中字符的unicode编码。比较两个字符串时,比较的是字符串的字符编码;比较时,是一对一的进行比较。如果上一个一样,就继续比较下一个,所以可以使用这个来进行英文排序(a-z)
如果是比较两个字符串型的数字,可能会得到不可预期的结果。
注意:在比较两个字符串型的数字时,一定要记得先转型再比较。
比如购物车内的物品数量,用户填的数量是字符串型的数字,如果限制用户添加的数量不能超过多少时,在进行比较时,就要先进行转型,
Unicode编码
在<script>标签中使用unicode编码:
在字符串中使用转义字符输入unicode编码
格式:\u+四位编码(16进制的)
在网页中使用unicode编码:
格式:&#+编码(十进制)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 这里的编码是十六进制的
console.log("\u2620");
</script>
</head>
<body>
<!-- 这里的编码是十进制的 -->
<h1>਼</h1>
</body>
</html>
计算器的使用:设置成程序员模式:
HEX:是十六进制;DEC:十进制;OCT:八进制;BIN:二进制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQxCXl1e-1628067606956)(C:\Users\ltting\AppData\Roaming\Typora\typora-user-images\image-20210804155033590.png)]
相等运算符
用来比较两个值是否相等,如果相等则会返回true,否则返回false
==:相等运算,当两个值得类型不同时,则会自动进行类型转换,转换成相同的类型。大部分情况是转换成Number类型。只比较数值的大小,不比较数值的类型
可以通过isNaN()函数来判断一个值是否是NaN(非Number型),如果该值是NaN则返回true,否则返回false
!=:不相等运算,用来判断两个值是否不相等,如果不相等就返回true,相等就返回false。不相等运算也会对变量进行自动的类型转换,如果转换后相等它也会返回false
===:全等运算,判断两个数值是否全等(数据大小和数据类型),=和类似,但是===不会自动进行类型转换,如果数据类型和数据大小都相等就返回true,否则就返回false
注意:
1.undefined衍生自null,所以这两个值进行相等比较时,会返回true。但是进行=全等比较时,返回的是false,因为两种类型不同。
2.NaN不和任何值相等,包括他本身
!==:用来判断两个值是否不全等,和不等类似,但是他不会自动类型的转换,如果两个值得类型不同,直接返回true
条件运算符(三元运算符)
语法:条件表达式?语句1:语句2
执行流程:
先判断条件表达式是否成立(true / false),
如果成立(true),则执行语句1,并返回执行结果;
如果不成立(false),则执行语句2,并返回执行结果
如果条件表达式的求值结果是一个非布尔值,会将其转换成布尔值然后再运算
**,**运算符
使用,可以分割多个语句,一般可以在声明多个变量时使用
//可以使用,同时声明多个变量
var a,b,c;
//同时声明多个变量并赋值
var a=1,b=2,c=3;
运算符的优先级
优先级越高,越优先计算;如果优先级一样,则按照从左往右计算
去百度看优先级表
语句(statement)
js中的语句默认是从上往下一条一条的执行的;
可以用**{}**来为语句进行分组(只有分组作用,没有其他作用),{}中的语句,要么都执行,要么都不执行;
一个{}的中的代码语句称做一个代码块,在代码块后面不用加**;**,代码块里面的内容,在外部是完全可见的