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

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

写在前头

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


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


思维导图

微信截图_20221111183958.png


脉络 3.5操作符

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


3.5操作符

微信截图_20221111184055.png


简述

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


3.5.1一元操作符

微信截图_20221111184109.png


1. 递增/递减操作符

概念:几元操作符就意味着可以操作几个数值。

  • 前缀
  • 后缀
    前缀,后缀递增递减都和c语言一样,前缀就先加减后运算,后缀就先运算后加减。
  • 字符串,布尔值
    先转换后操作。
    有效数值字符串->数值, 无效数值字符串-> NaN,
    布尔值: false -> 0 , true -> 1
  • 浮点数
    浮点数也是数值,直接操作。
  • 对象
    操作符不可以直接操作对象,使用对象自带的valueOf()方法将其转换为可以操作的值,如果是NaN,则使用toString()继续转换。


2. 正/负操作符

  • 数值
    和小学学的正负数前面的正负号一个道理。
  • 非数值(数据类型转换)
    在操作符面前非数值的一般都先进行数据类型的转换,然后再操作。


3.5.2. 加性操作符

微信截图_20221111184122.png


说白了就是加减符号,但是又不单单是我们小学那种简单的加减符号。


  1. 加法操作符
  • 操作数都是数值

当都是数值的时候,小学生都可以做了,直接2数相加求解。 但是遇到Infinity,NaN就得小心。

<script>
        console.log(NaN + 1); //    NaN
        console.log(Infinity + -Infinity); // NaN
        console.log(Infinity + 1); // Infinity
        console.log(-Infinity + -Infinity); // -Infinity
        console.log(+0 + +0); // 0
        console.log(-0 + -0); // 
        console.log(+0 + -0); //
    </script>
复制代码


  • 操作数中都没有字符串和对象

使用Number()转换,再执行上述规则。

  • 有一个操作数是字符串或者对象

使用String()转换,再操作拼接。

  • 常犯的一个错误

忽略加法操作中涉及的数据类型。从前到后依次加


<script>
     let num1 = 1;
     let num2 = 2;
       console.log('hello'+ num1 + num2); // hello12
    </script>
复制代码


注意这里hello和num1加的时候,num1被转换为字符型变成hello1,然后这个新的‘hello1’和num2相加又会让2个都转化为字符串。num2又转换为字符串,所以最终结果不是“hello3”是“hello12”。


  1. 减法操作符
  • 操作数都是数值

和上面加法一样,但是得记住一些特别的。

<script>
        console.log(2 - 1); //       1              
        console.log(NaN - 1); //    NaN
        console.log(1 - NaN); //  NaN
        console.log(Infinity - Infinity); //   NaN
        console.log(-Infinity - (-Infinity)); //    NaN
        console.log(-Infinity - -Infinity); //    NaN
        console.log(+0 - +0); //    0
        console.log(+0 - (-0)); //    0
        console.log(-0 - (-0)); //   0
    </script>
复制代码


  • 任一操作数不是数值

同上,使用Number()方法转换在操作。



目录
相关文章
|
4月前
|
程序员 C# 开发工具
C#☀️原来高级程序员是这样使用 & 操作符
C#☀️原来高级程序员是这样使用 & 操作符
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第十章 函数①
带你读书之“红宝书”:第十章 函数①
108 0
带你读书之“红宝书”:第十章 函数①
|
前端开发 C语言
带你读书之“红宝书”:第十章 函数④
带你读书之“红宝书”:第十章 函数④
86 0
带你读书之“红宝书”:第十章 函数④
|
存储 前端开发 JavaScript
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符②
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符②
101 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符②
|
前端开发
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
77 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
97 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
102 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
|
前端开发 C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
71 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
|
前端开发 JavaScript
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型前部分
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型前部分
88 0
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型前部分
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型中部分
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型中部分
77 0
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型中部分