add:运算符的优先级
This commit is contained in:
parent
ccd6d90d83
commit
1eb9f24f80
@ -535,7 +535,7 @@ border-left-width: 0;
|
|||||||
|
|
||||||
## 我的公众号
|
## 我的公众号
|
||||||
|
|
||||||
想学习<font color=#0000ff>**代码之外的软技能**</font>?不妨关注我的微信公众号:**生命团队**(id:`vitateam`)。
|
想学习<font color=#0000ff>**代码之外的软技能**</font>?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。
|
||||||
|
|
||||||
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
|
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
> 以下是正文。
|
> 以下是正文。
|
||||||
|
|
||||||
我们在[上一篇文章](http://www.cnblogs.com/smyhvae/p/8303507.html)里讲到了JS中**变量**的概念,本篇文章讲一下**运算符**和表达式。
|
我们在本文件夹的[第二篇](https://github.com/smyhvae/Web/blob/master/03-JavaScript%E5%9F%BA%E7%A1%80/02-%E5%8F%98%E9%87%8F.md)里讲到了JS中**变量**的概念,本篇文章讲一下**运算符**和表达式。
|
||||||
|
|
||||||
## 前言
|
## 前言
|
||||||
|
|
||||||
@ -27,7 +27,9 @@
|
|||||||
|
|
||||||
- 赋值运算符
|
- 赋值运算符
|
||||||
|
|
||||||
- 关系运算符s
|
- 关系运算符
|
||||||
|
|
||||||
|
- 三元运算符(条件运算符)
|
||||||
|
|
||||||
## 算数运算符
|
## 算数运算符
|
||||||
|
|
||||||
@ -37,7 +39,7 @@
|
|||||||
|
|
||||||
**求余的举例**:
|
**求余的举例**:
|
||||||
|
|
||||||
假设用户输入345,怎么分别得到3、4、5这三个数呢ø?
|
假设用户输入345,怎么分别得到3、4、5这三个数呢?
|
||||||
|
|
||||||
**答案**:
|
**答案**:
|
||||||
|
|
||||||
@ -65,7 +67,7 @@
|
|||||||
|
|
||||||
输出结果为3。
|
输出结果为3。
|
||||||
|
|
||||||
举例2:(运算符优先级)
|
举例2:(注意运算符优先级)
|
||||||
|
|
||||||
```
|
```
|
||||||
var a = 1 + 2 * 3 % 4 / 3;
|
var a = 1 + 2 * 3 % 4 / 3;
|
||||||
@ -171,8 +173,8 @@ typeof就是典型的一元运算符,因为后面只跟一个操作数。
|
|||||||
举例如下:
|
举例如下:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var a = '123';
|
var a = '123';
|
||||||
console.log(typeof a); // 打印结果:string
|
console.log(typeof a); // 打印结果:string
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@ -267,7 +269,7 @@ console.log(typeof a); // 打印结果:string
|
|||||||
|
|
||||||
举例1:
|
举例1:
|
||||||
|
|
||||||
```
|
```javascript
|
||||||
console.log(3 < 2 && 2 < 4);
|
console.log(3 < 2 && 2 < 4);
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -338,6 +340,20 @@ PS:上面的这个`a>=18 && a<= 65`千万别想当然的写成` 18<= a <= 65`
|
|||||||
|
|
||||||
- 如果第一个值为false,则返回第二个值
|
- 如果第一个值为false,则返回第二个值
|
||||||
|
|
||||||
|
|
||||||
|
实际开发中,我们经常是这样来处理容错的:
|
||||||
|
|
||||||
|
当成功调用一个接口后,针对返回的数据 result,假设我们用变量a 接收。通常的写法是这样的:(这里我只是举个例子)
|
||||||
|
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
if (result.resultCode == 0) {
|
||||||
|
var a = result && result.data && result.data.imgUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## 赋值运算符
|
## 赋值运算符
|
||||||
|
|
||||||
可以将符号右侧的值赋值给符号左侧的变量。
|
可以将符号右侧的值赋值给符号左侧的变量。
|
||||||
@ -425,11 +441,14 @@ console.log("56" > "123"); // true
|
|||||||
console.log("我爱你中国" == "我爱你中国"); //输出结果为true
|
console.log("我爱你中国" == "我爱你中国"); //输出结果为true
|
||||||
```
|
```
|
||||||
|
|
||||||
(2)`== `这个符号并不严谨,会将不同类型的东西,转为相同类型进行比较。例如:
|
(2)`== `这个符号并不严谨,会将不同类型的东西,**转为相同类型**进行比较(大部分情况下,都是转换为数字)。例如:
|
||||||
|
|
||||||
```
|
```javascript
|
||||||
console.log("6" == 6); //true
|
console.log("6" == 6); // 打印结果:true。这里的字符串"6"会先转换为数字6,然后再进行比较
|
||||||
console.log(0 == -0); //true
|
console.log(true == "1"); // 打印结果:true
|
||||||
|
console.log(0 == -0); // 打印结果:true
|
||||||
|
|
||||||
|
console.log(null == 0); // 打印结果:true
|
||||||
```
|
```
|
||||||
|
|
||||||
(3)undefined 衍生自 null,所以这两个值做相等判断时,会返回true。
|
(3)undefined 衍生自 null,所以这两个值做相等判断时,会返回true。
|
||||||
@ -446,9 +465,21 @@ console.log(NaN == NaN); //false
|
|||||||
|
|
||||||
问题:那如果我想判断 b的值是否为NaN,该怎么办呢?
|
问题:那如果我想判断 b的值是否为NaN,该怎么办呢?
|
||||||
|
|
||||||
答案:可以通过isNaN()函数来判断一个值是否是NaN。如果 b 为 NaN,则返回true;否则返回false。
|
答案:可以通过isNaN()函数来判断一个值是否是NaN。举例:
|
||||||
|
|
||||||
(5)如果要保证**完全等于**,我们就要用三个等号`===`。全等不会做类型转换。例如:
|
|
||||||
|
```javascript
|
||||||
|
console.log(isNaN(b)); //false
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
如上方代码所示,如果 b 为 NaN,则返回true;否则返回false。
|
||||||
|
|
||||||
|
|
||||||
|
### `===`全等符号的强调
|
||||||
|
|
||||||
|
|
||||||
|
如果要保证**完全等于**,我们就要用三个等号`===`。**全等不会做类型转换**。例如:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
console.log("6" === 6); //false
|
console.log("6" === 6); //false
|
||||||
@ -491,9 +522,54 @@ console.log(NaN == NaN); //false
|
|||||||
如果条件的表达式的求值结果是一个非布尔值,会将其转换为布尔值然后再运算。
|
如果条件的表达式的求值结果是一个非布尔值,会将其转换为布尔值然后再运算。
|
||||||
|
|
||||||
|
|
||||||
|
## 运算符的优先级
|
||||||
|
|
||||||
|
运算符的优先级如下:(越往上,优先级越高)
|
||||||
|
|
||||||
|
|
||||||
|
- `.`、`[]`、`new`
|
||||||
|
|
||||||
|
|
||||||
|
- ()
|
||||||
|
|
||||||
|
- ++、--
|
||||||
|
|
||||||
|
- `!`、`~`、`+`(单目)、`-`(单目)、`typeof`、`void`、`delete`
|
||||||
|
|
||||||
|
- `%`、`*`、`/`
|
||||||
|
|
||||||
|
- `+`(双目)、`-`(双目)
|
||||||
|
|
||||||
|
- `<<`、`>>`、`>>>`
|
||||||
|
|
||||||
|
- `<`、`<=`、`>`、`>=`
|
||||||
|
|
||||||
|
- `==`、`!==`、`===`
|
||||||
|
|
||||||
|
- `&`
|
||||||
|
|
||||||
|
- `^`
|
||||||
|
|
||||||
|
- `|`
|
||||||
|
|
||||||
|
- `&&`
|
||||||
|
|
||||||
|
- `||`
|
||||||
|
|
||||||
|
- `?:`
|
||||||
|
|
||||||
|
- `=`、`+=`、`-=`、`*=`、`/=`、`%=`、`<<=`、`>>=`、`>>>=`、`&=`、`^=`、`|=`
|
||||||
|
|
||||||
|
- `,`
|
||||||
|
|
||||||
|
|
||||||
|
备注:你在实际写代码的时候,如果不清楚哪个优先级更高,可以把括号运用上。
|
||||||
|
|
||||||
|
|
||||||
## Unicode 编码表
|
## Unicode 编码表
|
||||||
|
|
||||||
|
> 这一段中,我们来讲引申的内容:Unicode编码的使用。
|
||||||
|
|
||||||
1、在字符串中可以使用转义字符输入Unicode编码。格式如下:
|
1、在字符串中可以使用转义字符输入Unicode编码。格式如下:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -512,7 +588,8 @@ console.log(NaN == NaN); //false
|
|||||||
|
|
||||||
打印结果:
|
打印结果:
|
||||||
|
|
||||||
20181222_1218.png
|
|
||||||
|
![](http://img.smyhvae.com/20181222_1218.png)
|
||||||
|
|
||||||
|
|
||||||
2、同样,我们可以在网页中使用Unicode编码。格式如下:
|
2、同样,我们可以在网页中使用Unicode编码。格式如下:
|
||||||
@ -525,10 +602,14 @@ PS:我们知道,Unicode编码采用的是16进制,但是,这里的编码
|
|||||||
|
|
||||||
举例如下:
|
举例如下:
|
||||||
|
|
||||||
20181222_1226.png
|
```html
|
||||||
|
<h1 style="font-size: 100px;">⚄</h1>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
打印结果:
|
||||||
|
|
||||||
|
![](http://img.smyhvae.com/20181222_1226.png)
|
||||||
|
|
||||||
|
|
||||||
## 我的公众号
|
## 我的公众号
|
||||||
|
Loading…
Reference in New Issue
Block a user