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

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战

写在前头

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

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

思维导图

image.png

脉络 3.5操作符

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

3.5操作符

image.png

简述

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

3.5.6. 布尔操作符

image.png

和之前加性操作符类型差不多,都是和数学知识差不多,但是得记住一下特别的。书中讲了这些例子。

  1. 乘法操作符
  • 计算两个数值的乘积

同数学乘法类似。

  • 处理特殊值

    ① 如果有不是数值的操作数,则先在后台用 Number()将其转换为数值,然后再应用上述规则。
    ②如果 ECMAScript 不能表示乘积,则返回 Infinity 或-Infinity。

    ```JavaScript
      <script>
          console.log(2 * 3); // 6
          console.log(NaN * 3); // NaN 
          console.log(Infinity * 3); // Infinity
          console.log(Infinity * -3); // -Infinity
          console.log(Infinity * Infinity); //Infinity 
          console.log('2' * 3); // 6
      </script>
    
    
    
  1. 除法操作符
  • 计算第一个操作数除以第二个操作数的商

同数学除法类似。

  • 处理特殊值
    <script>
        console.log(3 / 2); // 1.5 c语言是1,js不取整
        console.log(NaN / 2); // NaN 
        console.log(Infinity / Infinity); // NaN 
        console.log(0 / 0); // NaN
        console.log(3 / 0); // Infinity 
        console.log(-3 / 0); // -Infinity
    </script>
  1. 取余操作符
  • 数值
 <script>
        console.log(26 % 3); // 2
 </script>
  • 处理特殊值
    <script>
        console.log(Infinity % 3); // NaN
        console.log(-Infinity % 3); // NaN
        console.log(888 % 0); // NaN
        console.log(Infinity % Infinity); // NaN
        console.log(888 % Infinity); // 888
        console.log(888 % -Infinity); // 888
        console.log(0 / 8); // 0
    </script>

3.5.4. 指数操作符

image.png
  • Math.pow()自己的操作符(2个**)
 <script>
        console.log(3 ** 2); // 9
        console.log(Math.pow(3, 2)); // 9
 </script>

3.5.5. 位操作符

image.png

基本原理

  • 二进制编码存储

所有的计算机存储的内容最终都是二进制构成的。

  • 32 位转换为 64 位

64位转换为32位,位操作符执行,再32位转换64位。这里我觉得书也得很好,我自己也讲不好。多看书吧。

  • 副作用

    特殊值 NaN 和 Infinity在位操作中都会被当成 0 处理。

    注意:输出负数时,是对应进制的正数再带一个负号。

    let num = -18;
    console.log(num.toString(2)); // '-10010'
    

1. 按位非

  • 是二进制数学操作符

  • 返回数值的一补数

32位每一位0换1,1换0。

  • 位操作的速度快

原因:位操作是更底层的操作比加性操作符等等更快。

  • 两个按位非操作符效果上等同于 Math.trunc()

      function test = (number) => ~~number === Math.trunc(number);
    console.log(test(1.05)); // true
    console.log(test(-1.05)); // true
    
    // 不同之处
    console.log(Math.trunc(NaN)); // NaN
    console.log(~~NaN); // 0
    console.log(Math.trunc(Infinity)); // Infinity
    console.log(~~Infinity); // 0
    

2. 按位与

有0则0 在两个位都是 1 时返回 1,在任何一位是 0 时返回 0

3. 按位或

有1则1:至少一位是 1 时返回 1,两位都是 0 时返回 0

4. 按位异或

同0异1:比对同样两个值执行按位或操作得到的结果小 1

5. 左移

按照指定的位数将数值的所有位向左移动,左移会以 0 填充这些空位,让结果是完整的 32 位数值。

6. 有符号右移

  • 会将数值的所有 32 位都向右移,同时保留符号。

  • 左移的逆运算

  • 会用符号位的值来填充这些空位

7. 无符号右移

  • 会将数值的所有 32 位都向右移

  • 无符号右移会给空位补 0,而不管符号位是什么。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容