mirror of
https://github.com/Estom/notes.git
synced 2026-04-02 02:20:25 +08:00
javascript 简单复习
This commit is contained in:
184
JavaScript/ecmascript-5/operator.md
Normal file
184
JavaScript/ecmascript-5/operator.md
Normal file
@@ -0,0 +1,184 @@
|
||||
JavaScript 提供了一组用于操作数据值的运算符。
|
||||
|
||||
- 算数运算符(+ - * / % ++ --)
|
||||
- 比较运算符(> >= < <= == != === !==)
|
||||
- 逻辑运算符(&& || !)
|
||||
- 赋值运算符(= += -= *= /= %= )
|
||||
- 字符串连接运算符(+)
|
||||
- 三元运算符(? :)
|
||||
- 特殊运算符(typeof instanceof delete)
|
||||
|
||||
## 算数运算符
|
||||
|
||||
给定 A=20 B=10 条件,下述表格描述算数运算符:
|
||||
|
||||
| 运算符 | 描述 | 例子 |
|
||||
| --- | --- | --- |
|
||||
| + | 两个运算数相加 | A + B = 30 |
|
||||
| - | 第一个运算数减去第二个运算数 | A – B = 10 |
|
||||
| * | 两个运算数相乘 | A * B = 200 |
|
||||
| / | 第一个运算数除以第二个运算数 | A / B = 2 |
|
||||
| % | 求余运算符,计算整除后的余数 | A % B = 0 |
|
||||
| ++ | 增量运算符,整数值逐次加 1 | A++ = 21 |
|
||||
| -- | 减量运算符,整数值逐次减 1 | A-- = 19 |
|
||||
|
||||
算数运算符的基本操作比较简单,但下述情况需要特别注意:
|
||||
|
||||
- 如果运算数中的一个或两个是字符串类型,JavaScript 会自动转换为数字值,再进行计算。
|
||||
- 如果运算数中的一个或两个是字符串类型,但其中的字符不是数字,JavaScript 会自动转换数字值失败,得到 NaN 结果。
|
||||
- 任何一个运算数是 NaN,结果都是 NaN。
|
||||
- 布尔值 false 和 true 会转换为 0 和 1 进行计算。
|
||||
|
||||
### 求余运算符
|
||||
|
||||
求余运算符,用于计算两个运算数整除后的余数。
|
||||
|
||||
```javascript
|
||||
console.log( 10 % 3 );// 输出 1
|
||||
|
||||
console.log( -10 % 3 );// 输出 -1
|
||||
|
||||
console.log( 10 % -3 );// 输出 1
|
||||
|
||||
console.log( -10 % -3 );// 输出 -1
|
||||
```
|
||||
|
||||
### 自增运算符
|
||||
|
||||
自增运算符,用于整数值逐次加 1。分别具有两种用法:
|
||||
|
||||
- 前置型:自增运算符位于运算数之前。先加 1,再赋值。
|
||||
- 后置型:自增运算符位于运算数之后。先赋值,再加 1。
|
||||
|
||||
```javascript
|
||||
var x = 3;
|
||||
console.log( x++ );// 输出 3
|
||||
console.log( x );// 输出 4
|
||||
|
||||
var y = 3;
|
||||
console.log( ++y );// 输出 4
|
||||
console.log( y );// 输出 4
|
||||
```
|
||||
|
||||
### 自减运算符
|
||||
|
||||
自减运算符,用于整数值逐次减 1。分别具有两种用法:
|
||||
|
||||
- 前置型:自增运算符位于运算数之前。先减 1,再赋值。
|
||||
- 后置型:自增运算符位于运算数之后。先赋值,再减 1。
|
||||
|
||||
```javascript
|
||||
var x = 3;
|
||||
console.log( x-- );// 输出 3
|
||||
console.log( x );// 输出 2
|
||||
|
||||
var y = 3;
|
||||
console.log( --y );// 输出 2
|
||||
console.log( y );// 输出 2
|
||||
```
|
||||
|
||||
## 比较运算符
|
||||
|
||||
给定 A=20 B=10条件,下述表格描述比较运算符:
|
||||
|
||||
| 运算符 | 描述 | 例子 |
|
||||
| --- | --- | --- |
|
||||
| == | 检查两个运算数的值是否相等,如果相等则结果为 true | A == B 为 false |
|
||||
| != | 检查两个运算数的值是否不等,如果不等则结果为 true | A != B 为 true |
|
||||
| > | 检查左边运算数是否大于右边运算数,如果是则结果为 true | A > B 为 true |
|
||||
| >= | 检查左边运算数是否大于或等于右边运算数,如果是则结果为 true | A >= B 为 true |
|
||||
| < | 检查左边运算数是否小于右边运算数,如果是则结果为 true | A < B 为 false |
|
||||
| <= | 检查左边运算数是否小于或等于右边运算数,如果是则结果为 true | A <= B 为 false |
|
||||
|
||||
### 全等与全不等
|
||||
|
||||
| 运算符 | 描述 |
|
||||
| --- | --- |
|
||||
| === | 两个运算数的值相等并且类型相同时,结果为 true |
|
||||
| !== | 两个运算数的值不等或者类型不同时,结果为 true |
|
||||
|
||||
```javascript
|
||||
var x = 10;
|
||||
var y = '10';
|
||||
|
||||
console.log( x == y );// 输出 true
|
||||
console.log( x === y );// 输出 false
|
||||
console.log( x != y );// 输出 false
|
||||
console.log( x !== y );// 输出 true
|
||||
```
|
||||
|
||||
### isNaN 函数
|
||||
|
||||
isNaN() 函数用于判断其参数是否为 NaN(非数字值)。
|
||||
|
||||
多用于检测使用类型转换函数进行数据类型转换后的结果是否为合法的数字值。
|
||||
|
||||
> **值得注意的是:** NaN 与任何值(包括自身)进行比较,结果都是 false。不能使用 `==` 或者 `===` 运算符判断某个值是否是 NaN,而只能使用isNaN() 函数。
|
||||
|
||||
```javascript
|
||||
console.log(isNaN(parseInt('123.45a')));// 输出 true
|
||||
|
||||
console.log(isNaN('123.45a'));// 输出 true
|
||||
|
||||
console.log(isNaN(Number('123.45a')));// 输出 true
|
||||
```
|
||||
|
||||
## 逻辑运算符
|
||||
|
||||
给定 A=20 B=10条件,下述表格描述比较运算符:
|
||||
|
||||
| 运算符 | 描述 | 例子 |
|
||||
| --- | --- | --- |
|
||||
| `&&` | 逻辑与运算符。如果两个运算数都是 true,则返回 true | A && B 为 true |
|
||||
| `||` | 逻辑或运算符。如果两个运算数中任何一个是 true,则返回 true | A || B 为 true |
|
||||
| `!` | 逻辑非运算符。用于改变运算数的逻辑状态。如果逻辑状态为 true,则通过逻辑非运算符是逻辑状态改为 false | !(A && B) 为 false |
|
||||
|
||||
### 逻辑与运算符
|
||||
|
||||
| B1 | B2 | B1 && B2 |
|
||||
| --- | --- | --- |
|
||||
| false | false | false |
|
||||
| false | true | false |
|
||||
| true | false | false |
|
||||
| true | true | true |
|
||||
|
||||
```javascript
|
||||
console.log( false && true );// 输出 false
|
||||
console.log( true && true );// 输出 true
|
||||
|
||||
// 数字值 1 和 0 转换为布尔值 true 和 false
|
||||
console.log( 1 && 0 );// 输出 false
|
||||
|
||||
// 空字符串转换为布尔值 false,非空字符串转换为布尔值 true
|
||||
console.log( "" && "atguigu" );// 输出 false
|
||||
```
|
||||
|
||||
### 逻辑或运算符
|
||||
|
||||
| B1 | B2 | B1 或 B2 |
|
||||
| --- | --- | --- |
|
||||
| false | false | false |
|
||||
| false | true | true |
|
||||
| true | false | true |
|
||||
| true | true | true |
|
||||
|
||||
```javascript
|
||||
console.log( false || true );// 输出 true
|
||||
console.log( false || false );// 输出 false
|
||||
|
||||
// 数字值 1 和 0 转换为布尔值 true 和 false
|
||||
console.log( 1 || 0 );// 输出 true
|
||||
|
||||
// 空字符串转换为布尔值 false,非空字符串转换为布尔值 true
|
||||
console.log( "" || "atguigu" );// 输出 true
|
||||
```
|
||||
|
||||
### 逻辑非运算符
|
||||
|
||||
| B1 | !B1 |
|
||||
| --- | --- |
|
||||
| false | true |
|
||||
| true | false |
|
||||
|
||||
```javascript
|
||||
console.log( !true );// 输出 false
|
||||
Reference in New Issue
Block a user