带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④

简介: 带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④

写在前头

大多数小伙伴看技术书籍都会用“啃”来描述读书的直观感受,当然我也是一个前端小白,白的透明那种,但是我在读技术书籍感觉到“啃”的时候,我希望把我啃红宝书第四版的过程的想法,总结带给大家,以供后来者能够更快上手。


注: 本文由于作者水平原因,如有错误之处,恳请大家指正,另外随着学习的深入,体会的加深,我会不断回来更新,修改这类文章。


思维导图

9ba63491c5704064959f8112b1089def_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


脉络 3.5操作符

这小节就是介绍了3.5操作符的3.5.8. 相等操作符,3.5.9. 赋值操作符,3.5.10. 条件操作符,3.5.11. 逗号操作符。


3.5操作符

96e8e6ff7db94a7ea10130cc70e8975f_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


简述

操作符,顾名思义就是用来操作数据值的一种符号。书上的解释也很详细,还涉及了使用方法转换对象,以便操作。


3.5.8. 相等操作符

3a220904682a4b6a8ec5e07bd9087d5a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

js里面分为2种,全等,等于。


1. 等于和不等于

在比较之前执行转换

转换规则:

①null,undefined相等,且不转换。

②NaN 永远不可能相等。

③有数值,布尔转换数值。

④有对象,字符转换字符。

<script>
        console.log(null == undefined); // true
        console.log(NaN == NaN); // false
        console.log(NaN == 1); // false
        console.log(123 == '123'); // true
        console.log([] == ''); // true
        console.log([] == '0'); // false
        console.log([] == 0); // true
    </script>
复制代码

在 '0' == [] 中不进行数值转换,而是进行字符串转换,[] 转为字符串 '',因此结果为 false。


2. 全等和不全等

不转换就直接进行判断,数据类型不同直接不相等。

<script>
        console.log(null === undefined); // false
        console.log(NaN === NaN); // false
        console.log(NaN === 1); // false
        console.log(123 === '123'); // false
        console.log([] === ''); // false
        console.log([] === '0'); // false
        console.log([] === 0); // false
    </script>
复制代码

Object.is() 方法,用来严格判断相等。


由于全等会出现一些问题,所以使用objec.is()更严格准确。

<script>
        console.log(+0 === -0); // true
        console.log(NaN === NaN); // false
        console.log(Object.is(+0, -0)); // false
        console.log(Object.is(NaN, NaN)); // true
    </script>
复制代码


3.5.9. 赋值操作符

931cc2c01be0487f901f7df64bedcb55_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


和c语言大体相同,“=”是直接赋值,“+=”这类是复合赋值赋值操作符。


简单赋值操作符

<script>
       var name = '张三';
    </script>
复制代码


复合赋值赋值操作符

优点: 简写,性能优化

  • 乘后赋值(*=)
  • 除后赋值(/=)
  • 取模后赋值(%=)
  • 加后赋值(+=)
  • 减后赋值(-=)
  • 左移后赋值(<<=)
  • 右移后赋值(>>=)
  • 无符号右移后赋值(>>>=)
<script>
    let num = 2;
       num *= 2; // num = num * 2;
       console.log(num); // 4
    </script>
复制代码


3.5.10. 条件操作符

311e32f6cd9845709fba150f164ceed9_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


三元运算符

S?A:B  S满足 选A执行,否则B执行。

let num1 = 0;
lt num2 = 1;
let max = num1 > num2 ? num1 : num2; // max = num2 = 1;
复制代码

num1比num2大就将num1赋值给max,否则赋值num2给max


3.5.11. 逗号操作符

2787e7e7476741a5810bc8edf69ec858_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


  • 一条语句中同时声明多个变量
let num1 = 1,
num2 = 2,
num3 = 3;
复制代码


  • 辅助赋值
let num = (5, 1, 4, 8, 0); // num 的值为0



目录
相关文章
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第十章 函数①
带你读书之“红宝书”:第十章 函数①
101 0
带你读书之“红宝书”:第十章 函数①
|
前端开发 C语言
带你读书之“红宝书”:第十章 函数④
带你读书之“红宝书”:第十章 函数④
78 0
带你读书之“红宝书”:第十章 函数④
|
前端开发
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
68 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
|
存储 前端开发 JavaScript
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符②
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符②
96 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符②
|
前端开发 C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符①
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符①
69 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符①
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
99 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
|
前端开发 C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
66 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
|
存储 JavaScript 前端开发
带你读书之“红宝书”:第十章 函数②
带你读书之“红宝书”:第十章 函数②
103 0
带你读书之“红宝书”:第十章 函数②
|
JavaScript 前端开发 C语言
带你读书之“红宝书”:第十章 函数③
带你读书之“红宝书”:第十章 函数③
104 0
带你读书之“红宝书”:第十章 函数③
|
存储 前端开发
带你读书之“红宝书”:第五章 基本引用类型④
带你读书之“红宝书”:第五章 基本引用类型④
85 0
带你读书之“红宝书”:第五章 基本引用类型④