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

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

写在前头

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


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


思维导图

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


脉络 3.5操作符

这小节就是介绍了3.5操作符


3.5操作符

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


简述

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


3.5.6. 布尔操作符

c92fa60bc8974dda8ac458d50dc2e814_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


  1. 逻辑非

先转换,再取反。true-> fasle false->true

  • 始终返回布尔值
  • 两个叹号(!!) == 转型函数Boolean()

“负负得正”  直接转换为布尔类型。和Boolean()功能相同。

<script>
        console.log(Boolean(123) === !!123); // true
        console.log(Boolean(NaN) === !!NaN); // true
    </script>
复制代码


  1. 逻辑与
  • 用于任何类型的操作数,不限于布尔值

有false则false,全true才true。

  • 使用 Boolean() 转型函数
    ①全对返2
    ②一对一错返false
    ③全错返1
<script>
        console.log('2' && 1); // 1
        console.log(0 && ''); // 0
        console.log(1 && ''); // ''
    </script>
复制代码


  • 短路操作符
    一错就停
    停就是检测到false之后就不在运行了。
<script>
        console.log(false && undefined1); // fales 后面undefined1是一个没有声明的变量但是不会被执行
        console.log(true && undefined2); // 前面是true 后面的undefined2是一个没有声明的变量但是这里会被执行,所以会报错。
    </script>
复制代码


  1. 逻辑或
  • 用于任何类型的操作数,不限于布尔值

与逻辑与相同。

  • 使用 Boolean() 转型函数
    ①全对返1
    ②半对返true
    ③全错返2
<script>
        console.log('2' || 1); // 2
        console.log(0 || ''); // ''
        console.log(1 || ''); // 1
       </script>
复制代码

和逻辑与相反。


  • 短路操作符
    一对就停
<script>
        console.log(true || undefined2); // 前面是true 后面的undefined2是一个没有声明的变量但是但是不会被执行 
        console.log(false || undefined1); // fales 后面undefined1是一个没有声明的变量这里会被执行,所以会报错。
    </script>
复制代码


避免给变量赋值null或undefined

给赋值的变量准备一个备选值。

let myObject = preferredObject || backupObject;
复制代码


preferredObject不是null,undefined就赋值他,如果是,就赋值后面的backupObject。


3.5.7. 关系操作符

1165326f927341b1ab84a5667ed9ef49_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


  • 返回布尔值
<script>
        console.log(2 < 3); // true
    </script>   
复制代码


  • 操作数都是字符串
    ①字母大小写统一
<script>
       let result = 'Brick'.toLowerCase() < 'alphabet'.toLowerCase(); // false
    </script>   
复制代码


②数值字符串

逐个比较它们的字符编码

  • 操作数中都没有对象
    使用 Number(),否则,在对象上调用 valueOf(),如果可以获得原始值,否则,在对象上调用 toString(),如果可以获得原始值,否则,报错。



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