• 你不知道的JavaScript 观后收获


    2020-12-30

    今天的收获

    奇特的~运算符

    • 解释一下
      ~42 //相当于 -(42+1)==>-43
    • 适用场景
    var a = 'hello world';
    if (~a.indexOf('lo')) {
      console.log(true,~a.indexOf('lo'))
    }
    
    ~~-78.9==> -78 //最大支持到32位
    

    三元运算符?:判断a是否为真

    var b=a?true:false //建议写为 var b=Boolean(a)?true:false
    

    把关运算符&&

    function foo(){
    console.log(a)
    }
    if(a){
    foo()
    } //简写 a&&foo()
    

    2020-1-6

    强制类型转换部分

    • 在比较的时候可能会默认调用 valueof toString 方法进行默认转换

    • 我们要对==两边的值认真推敲,以下两个原则可以让我们有效地避免出错。

      • 如果两边的值中有true或者false,千万不要使用==。

      • 如果两边的值中有[]、""或者0,尽量不要使用==。这时最好用===来避免不经意的强制类型转换。这两个原则可以让我们避开几乎所有强制类型转换的坑

    地狱回调部分

    • 地狱回调造成的结果是无法被维护,更新

    • 地狱回调的代码就好像一条铁链,一环扣着一环,如果其中一环断掉(出现问题),就会出现一着不慎,全盘皆输的现象,代码逻辑都是固定死的,很难将其中一环打开重新修改;

    • 信任问题:无法保证回调函数100%会被调用,即使写了大量逻辑代码来确保代码可以被执行,但是仍然会造成代码堆积的现象,最终导致代码很难更新和维护

    2020-2-2

    关于箭头的理解

    箭头函数中没有自己的this值,箭头函数中所使用的this来自函数作用域链, 其遵循普通变量的规则,在函数作用域中一层一层向上找;也就是说箭头函数中的this取决于外部函数(摘抄于你不知道的JavaScript)

  • 相关阅读:
    asp.net web api KnownTypeAttribute
    nodejs 递归创建目录
    nodejs 复制、移动文件
    windows cmd命令行下创建文件和文件夹
    nodejs http静态服务器
    C# Socket TCP Server & Client & nodejs client
    gem 安装nokigiri
    nsis 固定到任务栏
    SpringBoot整合JPA
    Freemaker FTL指令常用标签及语法
  • 原文地址:https://www.cnblogs.com/shiazhen/p/14211722.html
Copyright © 2020-2023  润新知