V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Bearv5
V2EX  ›  程序员

0 基础设计自学转码,挑战 30 天看完犀牛书。

  •  
  •   Bearv5 · 2022-10-16 21:26:56 +08:00 · 6859 次点击
    这是一个创建于 529 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直觉得敲代码很有种地的成就感,反正设计也找不到工作,干脆试试转码,技多不压身,买了欧莱利的 JavaScript 权威指南,今天开始啃。以后会每天更新学到的内容和心得,各位大佬帮忙监督监督。

    68 条回复    2023-02-11 20:59:12 +08:00
    morize
        1
    morize  
       2022-10-16 21:37:02 +08:00
    没啥基础直接看犀牛书,难度虽然没有种地那么苦,还是很难的
    HugoChao
        2
    HugoChao  
       2022-10-16 21:44:08 +08:00
    https://www.liaoxuefeng.com/wiki/1022910821149312
    分享一个我新手时期看的教程,写得很好
    Bearv5
        3
    Bearv5  
    OP
       2022-10-16 21:44:18 +08:00
    @morize 大佬说得有道理,我觉得顿时充满了干劲。
    maigebaoer
        4
    maigebaoer  
       2022-10-16 21:44:41 +08:00 via Android
    看啥犀牛书,直接上 https://javascript.info/
    vance123
        5
    vance123  
       2022-10-16 21:46:47 +08:00 via Android   ❤️ 9
    Bearv5
        6
    Bearv5  
    OP
       2022-10-16 22:01:44 +08:00
    @vance123 @HugoChao @maigebaoer 谢谢呀,在线教程很棒,内容结构挺类似的,我可以一起跟着看。
    Ghrhrrv146
        7
    Ghrhrrv146  
       2022-10-16 22:30:41 +08:00   ❤️ 1
    https://javascript.info/ 是我见过最好的 js 入门教程,刷三遍弄清楚所有代码都不过分
    angrylid
        8
    angrylid  
       2022-10-16 23:03:45 +08:00 via Android
    直接看楼上那个现代 JavaScript 教程就行了。
    Features
        9
    Features  
       2022-10-16 23:05:37 +08:00
    大可不必这么兴奋,也不要定个时间目标
    如果你觉得编程很酷,可以放松心态去敲代码
    如果是零基础的话(没有任何语言基础)
    那看书不一定是最好的选择,可以找找优秀的视频教程啊
    MojueJ
        10
    MojueJ  
       2022-10-17 00:36:53 +08:00 via Android
    种一棵树。。
    Bearv5
        11
    Bearv5  
    OP
       2022-10-17 00:58:48 +08:00
    # JavaScript 权威指南-学习笔记

    ## Day01:
    ### 第一章-第三章( p001-p035 )
    * JavaScript 可以在包含 JavaScript 解释器的程序上运行,比如浏览器和 node.js 。
    * 分号在 JS 中不是结尾必须的分隔符,但是使用分号可以避免很多不必要的意外错误。
    * JS 总共有 8 种类型,分别是:字符串、数值、布尔值、符号、Null 、Undefined 、Biglnt 和对象。
    * JS 的数值采用 64 位浮点表示法,这和大部分的编程语言一致,特点是无法精确表示十进制数值,但误差极小,完全可以满足日常使用。
    * 数值字面量可以使用下划线分隔符来帮助确认位数。
    * JS 使用 Unicode 字符集的 UTF -16 编码,因此字符串是无符号的 16 位值的序列,这意味着两个看上去相同的 JS 字符串有可能拥有不同的 Unicode 字符。
    * 可以使用反斜杠( \ )来表示转义序列。比较有趣的用法是可以使用 ( \n ) 将字符串字面量换行。

    p.s. 配合大佬们给的教程在推犀牛书的进度。我知道为什么犀牛书对新手不友好了,有很多计算机基础知识的兔子洞,书里是默认读者知道的,零基础理解起来的确费劲。
    happy61
        12
    happy61  
       2022-10-17 01:00:02 +08:00   ❤️ 1
    我以为自学 视频转码呢
    Bearv5
        13
    Bearv5  
    OP
       2022-10-17 01:08:16 +08:00
    @happy61 你这是美剧硅谷的剧情吗 :)
    webcape233
        14
    webcape233  
       2022-10-17 06:56:39 +08:00 via iPhone
    JS 使用 Unicode 字符集的 UTF -16 编码?

    无基础,30 天大可不必,也完不成,别调起太高容易丧失热情,就整个趁手的开发环境,搞清楚浏览器怎么用 js ,对无基础小白也得好些天。还是先从 html css js 循序渐进吧。 我和钱哦兄弟都是跨行业无基础转,算是经验之谈了。
    wolong
        15
    wolong  
       2022-10-17 07:14:52 +08:00
    @happy61 我也以为是视频转码。
    signalas1
        16
    signalas1  
       2022-10-17 07:20:36 +08:00
    犀牛书用来入门不合适,而且过时加不全面。 从这个来 -> https://roadmap.sh/frontend
    thinkershare
        17
    thinkershare  
       2022-10-17 08:09:32 +08:00
    @signalas1 过时倒没有(第七版是一本 600 页的厚书, 而且不像旧版有几百页的 API 参考, 350 页的 ES, 150 页的 WebAPI, 100 页左右的 Node ), 如果 OP 是自己说的那样零基础, 我有 100%的把握, 不可能完成. 因为这本书完全是字典型的书籍, 从第三版到第七版, 我每本都至少刷过 1-2 遍, 但到今天, 仍然不认为自己全部掌握了细节, JavaScript 实在有太多的无用的细节. 入门直接上 JavaScript 精粹, 如果真的认为自己是大神, 直接上 MDN+W3C 反而更有效率. 而且这本书很多概念, 都要求你必须具有计算专业背景的前置知识, 否则很快就会被细节淹没.
    而且这本书需要配合 HTML/CSS 等 Web 周边知识, 如果没有其它书籍, 强行啃这本书, 纯粹是浪费时间, 需要来来回回来的刷, 效率太低, 我读大学就刷了几次, 后来工作后, 才搞明白, 根本就不该一开始就刷这个. 而是应该配合 JavaScript 精粹这种, 学习 CSS/HTML, 然后写个几年代码, 然后将此书当作字典翻, 最后基本掌握 Web 前端开发后, 再从头到尾刷一遍. 过几年再刷一遍, 至少也需要刷个三遍.
    ccyu220
        18
    ccyu220  
       2022-10-17 08:15:35 +08:00
    「有志者,事竟成。」
    0o0O0o0O0o
        19
    0o0O0o0O0o  
       2022-10-17 08:19:55 +08:00 via iPhone
    加油,做设计的学编程,应该给我们带来点好看的应用
    justin2018
        20
    justin2018  
       2022-10-17 08:21:17 +08:00
    看 codewhy 的 WEB 前端线上系统课 😁
    webcape233
        21
    webcape233  
       2022-10-17 08:29:12 +08:00 via iPhone
    freecodecamp 了解下 转码需谨慎特别是 web 前端在现在这两年
    Verizon
        22
    Verizon  
       2022-10-17 08:53:47 +08:00
    犀牛书像字典 不如看 js 高级程序设计
    coldmonkeybit
        23
    coldmonkeybit  
       2022-10-17 09:00:10 +08:00
    很有热情的样子,加油来前端一起卷
    dasbn
        24
    dasbn  
       2022-10-17 09:00:44 +08:00
    犀牛书确实不适合入门(当然你是天才另说),它讲的很细节,但是没有引导也没有实践,代码量偏少主要是理论,上面说的在线的比这犀牛书入门确实好不少,犀牛书可能都不是属于一般人需要看的,看它不一定比 MDN 的文档有用
    debuggerx
        25
    debuggerx  
       2022-10-17 09:24:03 +08:00
    既然上面很多人也建议了这书不适合入门,我也就不复述了,只说一点感受:做这行,选择和努力都必不可少……
    fgwmlhdkkkw
        26
    fgwmlhdkkkw  
       2022-10-17 09:29:16 +08:00
    加油,小马过河。这些人可能都只是兔子老鼠呢!
    wolfie
        27
    wolfie  
       2022-10-17 09:34:16 +08:00
    你这时间太长了,看看隔壁 21 天精通 c++
    zhw2590582
        28
    zhw2590582  
       2022-10-17 09:50:35 +08:00
    我建议看最基础的先,如 https://www.w3school.com.cn/js/index.asp
    WilliamYang
        29
    WilliamYang  
       2022-10-17 10:04:41 +08:00
    从上面的回答中,我感受到了前端那种能看就行,能跑就行,能用就行的态度,身边很多同事确实如此,做后端就不行了,你不学也得学
    wangerka
        30
    wangerka  
       2022-10-17 10:09:13 +08:00
    @WilliamYang #29 是的,我们前端都知道你们后端很牛逼的
    AItsuki
        31
    AItsuki  
       2022-10-17 10:17:28 +08:00
    @vance123 初学者很容易迷失在不重要的细节里,说到我心坎里了。我都干了 8 年了,学新东西时一不注意就容易沉浸到细节离去了。
    qinhuai
        32
    qinhuai  
       2022-10-17 10:19:46 +08:00   ❤️ 1
    看标题以为来到了小红书...
    passerby233
        33
    passerby233  
       2022-10-17 10:21:10 +08:00
    dog82
        34
    dog82  
       2022-10-17 10:36:42 +08:00
    犀牛书后半部分是 API 参考,是拿来查的,不是拿来阅读的。
    前半部分值得细读,但是不适合新手。
    一口吃不成胖子,还是先看看其它入门书啦

    JS 的前置知识点比如 HTML CSS 等最好先看
    xhinliang
        35
    xhinliang  
       2022-10-17 10:39:12 +08:00
    犀牛书没啥用吧
    westoy
        36
    westoy  
       2022-10-17 10:43:18 +08:00 via Android
    看 js 程序高级设计,入门的话比这本强太多了

    这书现在没看的必要,历史评价高是在 dhtml 的时代就这一本是系统性的,而且当时 IE 的很多 js 函数是私有的,和标准实现的区别查不到
    CaptainD
        37
    CaptainD  
       2022-10-17 11:04:11 +08:00
    提一点建议,看书的时候计划 30 天太长了,如果这么长时间看完一本书的话我觉得很不值,而且效果不一定好

    我自己的习惯是,两种看书方式
    要么是短时间内看完一本,比如 3 天内看完,这几天每天花的时间比较多,适合假期这种大块的时间,而且看的时候可能有些章节会反复看看
    要么是把一本书分解,不同章节差别很大,我想了解某件事的时候只看对应的几个章节,也可以尝试把不同的书组合起来看
    leexy
        38
    leexy  
       2022-10-17 11:12:45 +08:00
    转码不看 ffmpeg 吗?
    dtdths1
        39
    dtdths1  
       2022-10-17 11:31:07 +08:00
    入门 js 看犀牛书就好比学英语直接啃牛津词典
    newSimpleLife
        40
    newSimpleLife  
       2022-10-17 11:36:52 +08:00
    哪有这么硬学的
    mascteen
        41
    mascteen  
       2022-10-17 11:46:40 +08:00 via Android
    Serino
        42
    Serino  
       2022-10-17 12:58:00 +08:00
    如果是 Python 的话,有特别推荐的吗?
    gamesbain
        43
    gamesbain  
       2022-10-17 13:15:24 +08:00
    零基础好歹先把 HTML,CSS 先刷一遍吧...
    thinkershare
        44
    thinkershare  
       2022-10-17 13:30:48 +08:00
    @dog82 最新版本不是这样的, 而且添加了很多 Web API 内容, 完全砍掉了 API Ref, 新版本已经更新到 ES 2022, 到第七版了。
    rocksolid
        45
    rocksolid  
       2022-10-17 13:38:40 +08:00
    从入门到放弃么
    morgan1freeman
        46
    morgan1freeman  
       2022-10-17 13:46:05 +08:00
    了解一下类型系统 学完 if else function 就可以开撸代码了,后面的东西边做边学,沉迷在技术的回字的四种写法种毫无意义
    ymcz852
        47
    ymcz852  
       2022-10-17 13:46:57 +08:00
    @WilliamYang 你有狂犬病吗
    lopda
        48
    lopda  
       2022-10-17 13:48:18 +08:00   ❤️ 1
    加油!不过这种啃书的做法😂还是要多练习的。
    Kokomashiro
        49
    Kokomashiro  
       2022-10-17 14:48:57 +08:00
    有一说一,犀牛书不适合新手尤其是零基础的看,里面有大量的标准,看了也记不住,建议试试红宝书,同样的 js 经典
    Bearv5
        50
    Bearv5  
    OP
       2022-10-17 14:54:27 +08:00
    @thinkershare html 、css 倒是会的,我是 UI 转码。之前以为会点 html 、css 就差不多算 web 开发了,后来发现这俩不算编程。 : )
    thinkershare
        51
    thinkershare  
       2022-10-17 15:21:19 +08:00
    @Bearv5
    JavaScript 是一门设计的非常差的语言, 直到 ES6 才开始以后才有所改善。
    因此真的不建议你使用 JavaScript 权威指南这种大部头来学习,它介绍了非常多无关紧要的语言的癖好和怪异行为。
    使用它学习性价比太低, 如果你是一个写了几年 Web 的人,你阅读它当然是没有问题的。
    这本书有很多和 JavaScript 无关的内容(一半内容是 Web API + Node) 这本少的前面 400 页你可以仔细阅读, 后面 300 页左右的内容对于学习 nodeJS 和 WebAPIs 都只能算入门,甚至入门都算不上。
    Web 是一个开发平台,它发展到今天, 已经相当庞大了, 耐心一点,不要那么着急,指望快速掌握它,一步一步学。
    不要一开始就给自己定死一个时间。
    在学习过程中最好去实践,否则只学习理论是很难用于实际开发的,多去 GitHub 找别人写的前端代码看。
    然后过一段时间后再回来看书,一些大部头的书籍,不是你短时间看一遍,刷一遍就能掌握的。
    基础技术:CSS3, HTML5, JavaScript(TypeScript),SVG,HTTP, WebAssembly,Media(Audio/Video/VR)
    扩展技术:Accessibility, Developer Tools, Extensions, PWAs, Security, Performance
    第三方: 工具库, 框架库,组件库,工具链条(整个 nodeJS 生态上的各种工具)
    Bearv5
        52
    Bearv5  
    OP
       2022-10-17 15:34:41 +08:00
    @thinkershare 谢谢大佬,我只能算是画了几年 web 的人,哈哈哈哈。
    DrakeXiang
        53
    DrakeXiang  
       2022-10-17 16:19:00 +08:00
    动手才能把知识学进去,光看书效果不行,多的不说,下午就能把上午看的东西忘掉一大半,另外只有动手你才会发现在书上看过几十遍的一句话到你手里不是大小写错了就是少空格标点。

    我也是转的前端,工作六年了,犀牛书只是听过,从来没看过,我看过的 js 高级编程厚度比犀牛书少了很多,但就是高程这本书里面的东西也有很多是几乎用不到的,那你看犀牛书又有多少有用的东西呢。诚然基础牢是没错,但是你 0 基础转行,工作内容几乎不可能需要用到高深技术,你多学的这些短时间内用不到,反而在编程放弃概率最大的初始阶段给自己造成很大障碍,无论从哪方面看都不是合理的方式
    Daiwf
        54
    Daiwf  
       2022-10-17 16:41:00 +08:00
    别的不说,这个头像就充满了干劲呢!
    yaphets666
        55
    yaphets666  
       2022-10-17 16:53:28 +08:00
    @WilliamYang 贴点你的代码,或者你学的那些你所谓的不得不学的东西,让兄弟们开开眼
    exposir213
        56
    exposir213  
       2022-10-17 19:29:02 +08:00
    犀牛书?可以但没必要
    yangxin0
        57
    yangxin0  
       2022-10-17 19:35:50 +08:00
    为啥想不通去卷代码
    hertzry
        58
    hertzry  
       2022-10-17 20:39:47 +08:00
    我觉得设计挺好,OP 给指条学习的明路?
    Bearv5
        59
    Bearv5  
    OP
       2022-10-17 21:06:30 +08:00
    @hertzry 设计没有学习的路径。路径在老板 /领导 /客户的脑海里。研究一下心理学或许可以总结出来一些靠谱的路径。
    wuhao747003943
        60
    wuhao747003943  
       2022-10-17 21:29:57 +08:00
    0 基础看书基本劝退 很无聊的 建议去 b 站搜视频教程 非常不建议看书!!!
    arnosolo
        61
    arnosolo  
       2022-10-17 21:41:34 +08:00
    前端不难, 找工作难
    nbndco
        62
    nbndco  
       2022-10-17 21:51:05 +08:00
    个人建议的话,任何人都不适合看这种书。尤其是对新人而言,掌握 best practice 是第一位的。这种充满了过时的( js/ts 的生态发展的真的很快)和糟糕的(毕竟 js 本身就已经设计的够烂的了)语言细节的书真的很浪费时间。
    Bearv5
        63
    Bearv5  
    OP
       2022-10-18 02:48:35 +08:00
    ## Day02:
    ### 第三章-第四章( p036-p047 )
    * 使用操作符比较字符串时,比较的是字符串的 Unicode 16 位值序列。
    * 字符串是只读的,使用方法调用字符串时会产生新的字符串。
    * 模版字面量允许字符串横跨多行而无需转义,其中用 `${}` 包裹起来的表达式也会在求值后转换成字符串插入模板。
    * 任何值都可以转换为布尔值。null 、undefined 、‘ ‘、0 、-0 、NaN ,这 6 个值的布尔值是 false ,所有其他值的布尔值为 true 。
    * null 是程序级别的没有值; undefined 是系统级别的预定义全集常量,意义也是没有值。在使用中没有差别,但是在语义上可以用 null 表示预料中的没有值,这样在 undefined 出现时就可以更方便得区分是否是一个 bug 。
    * Symbol 可以解决对象属性重名的问题,使用 `Symbol()` 会产生一个符号值,再次用相同的参数调用函数会产生另外一个完全不同的值。相当于把属性名装进了一个安全的福袋,即使福袋的外包装一样,内容也完全不同。
    * 原始类型如 字符串、数值、布尔值、null 、undefined 的值不可修改,引用类型如对象的值可修改。
    * JS 会根据上下文隐式转换提供的值,比较有趣的是 true 转换成数值是 1 ,null 和 false 则是 0 。

    P.s. 花了些时间在 Codepen.io 上看别人的 demo (暂时只能看懂 html 、和 css 的部分)并且尝试书里的例子,很多基础知识不懂,几乎看一页就要花上一段时间来搜索相关概念。不过网上资料很丰富,立即就能找到想要答案。
    LiMengBo
        64
    LiMengBo  
       2022-10-18 10:40:28 +08:00
    多学多练容易忘
    Bearv5
        65
    Bearv5  
    OP
       2022-10-19 02:28:05 +08:00
    ## Day03:
    ### 第三章-第四章( p048-p063 )
    * 对象到原始值的转换算法有三种:偏字符串算法、偏数值算法、无偏好算法。且所有对象都继承了 `toString()` 和 `valueOf()` 两种方法来转换成原始值。作者在对象到原始值的转换这一小节建议跳过这一节,详细的转换方式会在之后的 14.4.7 节介绍。
    * let 用来声明变量,const 用来声明常量。比较有趣的是,可以使用全大写+下划线的方式来声明常量,声明变量则使用常规的小驼峰,这样可以在引用时,清楚辨别变量和常量。
    * 所有在 `{}` 内使用 let 声明的变量和 const 常量都在这个代码块中具有块作用域(循环函数的循环体也适用这个规则),在 `{}` 之外声明的变量和常量具有全局作用域。使用 var 声明的变量不具有块作用域。
    * var 需要注意的一个特性是具备作用域提升,可以在包含函数内部和变量声明之前引用变量,得到的值是 undefined 。
    * 解构赋值可以将数组或对象字面量的语法用在变量名上,所赋的值用相同的语法写成,可以快捷得为多个变量赋值。
    * 表达式是一个可以被求值并产生一个值的 JS 短语。
    * 属性访问表达式 `a.b` 的左侧表达式的值假设为 null 、undefined ,这个时候表达式会抛出 TypeError 。为了避免这种情况可以使用条件式属性访问,同样的情况下使用条件式属性访问 `a?.b` 求值结果为 undefined 。

    P.s. 大概了解犀牛书的结构了,书中有很多指向后面章节的内容介绍,用线性的方式看的确不需要每个定义都看懂,因为后面的章节才是主要描述某个知识的地方。除此之外,依然有很多需要主动检索的内容,之前大佬们推荐的 zh.javascript.info 派上很大用场,里面的释义通俗易懂,而且还很幽默。
    Bearv5
        66
    Bearv5  
    OP
       2022-10-20 02:28:51 +08:00
    ## Day04:
    ### 第四章( p064-p071 )
    * 对象创建表达式使用关键字 new 并调用一个构造函数来创建一个新的对象。
    * 操作符有一元、二元、三元,这三种,其中比较有趣的是 delete 这种单词在 JS 中也是一个操作符。
    * lvalue 即 left value 。书中提到这是一个古老的术语,虽然这个概念对编程工作没什么实际用处,但是这里似乎可以窥见计算机语言发展上的一些拼写语法,还挺有趣的。
    * JS 中新加入的比如 `**` 和 `??` 操作符在优先级上没有十分明确的定义,所以和其他操作符混用时需要辅助使用 `()` 强制优先操作。
    * 一元、三元、赋值和幂操作符具有右结合性,也就是在相同优先级条件下从右至左计算操作数的值。其他操作符的计算顺序和初中数学一致是在相同优先级条件下从左至右计算的。
    * JS 始终严格按照从左到右的顺序对子表达式求值。
    * JS 的所有数值都是浮点数,所以算数表达式求值可以得到小数点后的精度。

    P.s. 看这一章像是回到了初中数学课,还是比较催眠的。
    Bearv5
        67
    Bearv5  
    OP
       2022-10-27 01:26:49 +08:00
    ## Day05-Day10:
    ### 第四章-第五章( p072-p108 )
    * `+` 二元操作符的操作数有至少一个的类型是字符串时会优先将操作数转换为字符串,其他情况会转换成数值。
    * 递增和递减操作符期待左值操作数,而且操作符在操作数左侧时,会为操作数重新赋值递增 /减后的值,操作数在右侧时则只递增 /减,不重新赋值。
    * 关于整数的二进制表示部分因为 JS 中较少用到,且涉及到一些计算机基础知识,故作者在书中建议读者跳过。
    * 关系表达式 `==` 和 `===` 使用相同的标准检查两个值是否相同,但是 `==` 允许操作数转换类型,`===` 则不允许。
    * `==` 被认为是一个程序设计上的隐患,所以在实践中尽量使用 `===`。
    * 对象和其他类型不一样的一个地方是,在作为比较操作符的操作数时,对象是按引用比较,而不是按值来比较,简单一些来说,对象是在比较对象的名字,而不是赋给对象的值。
    * NaN 不全等于 NaN ,因为 NaN 不等于任何其他值,也不等于其自身。
    * `==` 操作符的操作数如果类型不同,则会优先转换操作数为数值类型再进行比较。
    * 比较操作符只能比较数值和字符串类型,所有不是这两种类型的操作数都会被转换类型。
    * 对象在作为比较操作符的操作数时使用偏数值算法转换类型。
    * 比较操作符在比较字符串时比较的是“字母表顺序”即组成字符串的 16 位 Unicode 值的数值顺序。
    * NaN 作为比较操作符的操作数(包括转换后的值)时,比较操作符返回 false 。
    * JS 有许多方法可以更可靠的比较字符串。
    * in 操作符期待左侧操作数为字符串、符号或者可以转换为字符串的值,期待右侧操作数为对象。如果左侧操作数是右侧对象的值则返回 true 。
    * instanceof 操作符的原理涉及到原型链,书中提示会在 6.3.2 种详细讲解。
    * `&&` `||` 操作符不止可以返回布尔值,也可以返回真假值。逻辑操作符右侧的操作数最好不要包含负效应,除非是有意为之。另外这两个操作符被翻译成“与”和“或”,我自己的翻译是“且”和“否则”,这样的翻译对我来说更容易记忆和理解。
    * 书里提到了德摩根定律,看上去很像乘法的法则。
    * 组合赋值操作符多数情况下符合 `(a op= b ) === (a = a op b)` (op 是操作符),但是左侧的表达式 a 只会被求值一次,右侧则是两次,这在表达式 a 中包含负效应时会有所区别。
    * JS 的全局函数 `eval()` 可以对源代码字符串求值,但是因为有可能会在实际使用中造成安全漏洞,所以不建议使用,且实际项目中几乎使用不到。
    * 三元操作符 `?:` 先对第一个操作符求值,如果求值结果为真值,则求值第二个操作符,如果求值结果为假值,则求值第三个操作符。这在某些使用 `if` 语句的情况下可以使用 `?:` 代替并简化 `if` 语句。
    * `??` 操作符和 `||` 操作符类似,但是前者在它的第一个操作数为 `0` 、`-0` 、 `''` 、 `flase` 时,会求值为真值。
    * `typeof` 操作符返回操作数类型。比较有趣的是,函数在 JS 中算是一种对象,但是用 `typeof` 操作符返回的是 ‘function’ 类型。
    * `delete` 操作符可以删除其操作数指定的对象属性和数组元素。需要注意的是该操作符可以完全删除对象属性,但是在删除数组元素时会留下一个“坑”,使数组的元素个数不变,成为一个稀疏数组。
    * `await` 操作符有关于异步编程,作者建议阅读 13 章时再详细了解。
    * `void` 作者说是个没啥用的操作符,该操作符是个一元操作符,它求值自己的操作数但丢弃操作数的值并返回 undefined 。
    * `,` 是个二元操作符,它会求值左右两侧的操作数,然后丢弃左侧操作数的值并返回右侧操作数的值。唯一比较常见的用法是在有多个循环变量的循环语句中。
    * JS 中的表达式被称作短语,由短语组成并且可以引起某种负效应的句子被称作语句。某些自身就可以引起负效应的短语,诸如赋值、函数调用表达式被称做表达式语句。类似的还有声明语句。
    * 可以使用 `{}` 将多个语句复合成一个语句块,用以放在任何期待一个语句的地方。而且在 `{}` 之后可以不使用 `;` 作为分隔符。
    * `;` 可作为空语句使用。在期待一个语句的地方放置一个空语句。但是用处不大。
    * 条件语句使用 `{}` 语句块,可以避免很多麻烦。
    * `else if` 不是一个 JS 短语,它是在使用 if/else 嵌套中的一个编程惯例。
    * `swich` 语句中 case 之后最好跟随没有负效应的表达式,最靠谱的做法是只写常量表达式。
    * `break` (在函数中使用 `return`) 可以作为 `switch` 语句的“跑出”关键字,使解释器“跑出” `switch` 语句。
    * JS 中有 5 种循环语句,分别是 `while` `do/while` `for` `for/of(及其变体 for/await)` `for/in`。
    * I 、j 、k 是 `while` 循环语句最常见的计数器变量名,作者建议为了更好的阅读性可以起一个更具描述性的变量名。
    * `for/of` 循环只可用于可迭代对象,不可对不可迭代对象使用。可以使用内建方法将不可迭代对象转换成数组等可迭代对象再对其使用 `for/of` 循环。
    * JS 的循环语句在循环字符串时是逐个 Unicode 码点迭代的,这意味着占用两个 UTF-16 字符的字符串只会循环一次。
    * `for/await` 涉及异步迭代器,作者建议到第 12 章和第 13 章时再详细了解。
    * `for/in` 循环可以对任何对象使用。使用时 `in` 关键字右侧的对象属性名会赋值给 `in` 关键字左侧的变量。
    * 使用`for/in` 循环语句的一个隐患是,有可能会枚举对象在原型链中继承的可枚举属性,这会导致一些意外的结果。所以尽可能的使用`for/of` 循环语句就可以避免这些麻烦。
    * `continue` 和 `break` 是唯二使用语句标签的语句。语句标签可以是任何合法的非保留字 JS 标识符,并且其与变量、函数名不在一个命名空间,但是不可以在嵌套循环中重复命名语句标签的标识符。
    P.s 差不多一个星期没有更新了,原本的计划是每天 20+ 页的速度,但是对初学者来说的确还是有些吃力。花了大量的时间在验证和实验书中的例子,但是这个过程十分有趣,因为控制台总是会实时得给我明确的反馈,这和画图刚好相反,设计是不期待反馈的,越好的设计师越是会使用方法和实际受众拉开距离。
    smallboy19991231
        68
    smallboy19991231  
       2023-02-11 20:59:12 +08:00 via Android
    你好 lz ,都 100 多天了,你真的 0 基础 30 天看完且真的学到了吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1190 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 18:25 · PVG 02:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.