参考:MDN相等性判断

JavaScript提供三种不同的值比较操作:

  • === ,严格相等比较 (也被称作”strict equality”, “identity”, “triple equals”)
  • ==,抽象相等比较 (“loose equality”,”double equals”)
  • Object.is (ECMAScript 2015/ ES6 新特性)

Moral of the story:
Always use 3 equals unless you have a good reason to use 2.
能用===就用===!!!

阅读全文 »

考察要点

  • 微任务和宏任务
    • script(宏任务),最先执行,产生其他微任务和宏任务
    • 微任务:promise.then的回调,优先级高
    • 宏任务:setTimeout的回调,优先级低
  • Promise
    • then 只接受函数做参数,不是函数则使用默认回调
      • 成功:值传递 val=>val
      • 失败:异常穿透 reason=>throw(reason)
      • then 方法的返回值不能是赋值对象(p=otherP.then(res=>return p)会死循环!)
    • finally
      • 读不到上一个Promise的状态,即没有入参
      • 返回值默认是上一个Promise,报错才会重写返回值
        • 在finally回调内写return没用
        • 除非回调里throw err或return 失败Promise(return Promise.reject),返回值会变成失败Promise
    • race,all
      • all,返回值:
        • 所有成功,才返回成功Promise,值为全部Promise结果的数组,顺序和输入一样
        • 一旦有一个失败,则立即返回失败Promise
      • race,返回第一个改变状态的Promise
      • 注意如果promise对象是延时后改变状态的情况
  • aysnc函数
    • await 等待的的算new Promise,同步
    • await 后面的算then(),微任务
    • await 等待的Promise
      • 失败,直接抛出错误
      • new Promise陷阱:
        • 如果没有resolve/reject改变状态,就一直pending,await后面的代码不会执行
阅读全文 »

参考视频:https://www.bilibili.com/video/BV1w4411m7GL

HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,所以很容易遭到黑客的攻击

TLS/SSL加密算法

HTTPS就是HTTP+TLS/SSL

TLS/SSL全称安全传输层协议(Transport Layer Security), 是介于TCP和HTTP之间的一层安全协议,不影响原有的TCP协议和HTTP协议,所以使用HTTPS基本上不需要对HTTP页面进行太多的改造。

TLS/SSL的功能实现主要依赖三类基本算法:散列函数hash对称加密非对称加密

阅读全文 »

概览

参考

Redux对外暴露的API较少,有5个顶层API,4个Store API

顶级暴露的方法

Store API

阅读全文 »