1 react使用rollup打包,flow做類型檢測。
2 解構賦值不僅可以用在對象上,也可以用在數組上。
3 flow主要使用冒號來添加類型限制;不手動添加flow也可以自動識別部分類型錯誤。
4 python2的print打印簡單類型會做編碼轉換,打印對象不會;print打印單個參數會轉換,兩個參數也不會。
5 utf-8一般是 \x
帶頭的,後面跟兩位字母或數字,例如 \xe6\xb5\x8b\xe8\xaf\x95\xe5\x95\x8a
,三個 \x
代表一個漢 字;gbk一般是 \x
帶頭的,後面跟兩位字母或數字,例如 \xb2\xe2\xca\xd4\xb0\xa1
,兩個個 \x
代表一個漢字。
6
7 python中unicode是一種數據類型。
8 linux下文件包含中文則爲utf-8編碼的文件,刪掉中文(包括註釋)則變成ascii編碼。
9 bind的原理就是函數柯里化;柯里化也用到了閉包。
10 偏函數和bind的區別是不改變this指向。
function add(a, b) {
return a + b + this.value;
}
// var addOne = add.bind(null, 1);
var addOne = partial(add, 1);
var value = 1;
var obj = {
value: 2,
addOne: addOne
}
obj.addOne(2); // ???
// 使用 bind 時,結果爲 4
// 使用 partial 時,結果爲 5
11 惰性函數解決了閉包每次需要判斷的問題。以下惰性函數每次調用都拿到第一次的date數據。
var foo = function() {
var t = new Date();
foo = function() {
return t;
};
return foo();
};
12 斐波那契數列使用記憶函數可以大大減少計算量。
13 service worker可以使web應用增加離線、消息推送等功能;它是PWA的一部分。
14 架構順序,業務架構=》應用架構=》技術架構。
15 應用服務器和數據服務器分離,使用緩存改善性能。
16 loadsh庫推動了js語言的發展,現在的es6很多功能可以替代庫裏的功能。
17 options請求可以知道服務端支持哪些請求類型和請求頭的自定義字段;跨域時,本地node代理會先發options請求,如果後端沒有允許這個請求的話(老的框架),會導致報錯(前端實際發送的是沒有自定義字段的options請求,而非正式請求)。這會導致前端以爲發過去了,但是後端收不到。