摘要:變量和方法類型的變量中只用類型和類型平時(shí)使用的字符串應(yīng)該是類型,應(yīng)該是出現(xiàn)這樣的情況,因?yàn)闀r(shí)候,轉(zhuǎn)換成了類型在明確指出變量類型的轉(zhuǎn)換所以類型的是的,而是的,對(duì)與類型的變量,為其賦值,本質(zhì)上就是讓變量指向新的內(nèi)存。
變量和方法 類型
js的變量中只用primitive類型和object類型
平時(shí)使用的字符串應(yīng)該是primitive類型,應(yīng)該是not an object and has no methods
const str = "hello"; console.log(str.charAt(0)); // output: h Object.prototype.toString.call(str) // output: [object String]
出現(xiàn)這樣的情況,因?yàn)閟tr.charAt時(shí)候,String(primitive)轉(zhuǎn)換成了String(object)類型在ECMAScript Language Specification&8.7.1 明確指出變量類型的轉(zhuǎn)換
所以primitive類型的value是immutable的,而variable是mutable的,對(duì)與primitive類型的變量,為其賦值,本質(zhì)上就是讓變量指向新的內(nèi)存。
lodash相關(guān)技巧和實(shí)例
N次循環(huán)技巧
for(let i = 0; i < 5; i++) { // ... } Array.apply(null, Array(5)).forEach(() => { // ... }); _.times(5, () => { // ... };
深層次查找屬性
const ownerArr = [{ "owner": "Colin", "pets": [{"name":"dog1"}, {"name": "dog2"}] }, { "owner": "John", "pets": [{"name":"dog3"}, {"name": "dog4"}] }]; ownerArr.map(owner => { return owner.pets[0].name; }); _.map(ownerArr, "pets[0].name");
數(shù)組獨(dú)立
Array.apply(null, Array(6)).map( (item, index) => { return "ball_" + index; }); _.times(6, _.uniqueId.bind(null, "ball_")); _.times(6, _.partial(_.uniqueId, "ball_")); // output: [ball_0, ball_1, ball_2, ball_3, ball_4, ball_5]
對(duì)象擴(kuò)展(可以直接用Object.assgin(), 底層一樣的實(shí)現(xiàn))
Object.prototype.extend = obj => { for (let i in obj) { if (obj.hasOwnProperty(i)) { this[i] = obj[i]; } } }; const objA = {"name": "colin", "car": "suzuki"}; const objB = {"name": "james", "age": 17}; objA.extend(objB); console.log(objA); // {"name": "james", "age": 17, "car": "suzuki"}; _.assign(objA, objB); // {"name": "james", "age": 17, "car": "suzuki"}; // ES6 Objetct.assign({}, objA, objB); // {"name": "james", "age": 17, "car": "suzuki"}; //_.assign 是淺拷貝,所以會(huì)覆蓋name
補(bǔ)充作用域:
const test = "1"; testOne() { return testTwo{ cosole.log(test); }; const test = "2"; } testOne()(); // output: undefined const test = "1"; testOne() { return testTwo{ console.log(test); }; test = "2"; } // output: 1;
因?yàn)橹匦露x了const,他在搜索作用域時(shí)候,會(huì)自上到下搜索聲明的變量,如果沒(méi)有聲明,查找才會(huì)進(jìn)去下一層,此處輸出undefined,因?yàn)樵趖estOne()里面const之前就使用了test,所以就輸出了undefined,而在第二個(gè)例子里面沒(méi)有聲明test,所以他就跳轉(zhuǎn)出去,去下一層尋找test,即輸出為1
作用域提升
const a = 1; b(){ const a = b = 2; } console.log(a, b); // 拋出異常,因?yàn)椋鉀](méi)有定義 b(); console.log(a, b); //output: 1,2; // const a = b = 2 等價(jià)于 在全局聲明const b = 2; 內(nèi)部聲明const a = b;因?yàn)?運(yùn)算符是重右像左運(yùn)算的附錄
MDN連接文檔
lodash相關(guān)技巧
10個(gè)ES6可以代替lodash的方法
希望各位大佬來(lái)補(bǔ)充和改錯(cuò),相互交流
Github地址: https://github.com/smile-soul
個(gè)人Blog: http://www.smilesoul.cn/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/88815.html
摘要:只在中有效你的文件在開(kāi)發(fā)者工具中顯示為。參考鏈接清除日志如果你在使用時(shí)看過(guò)下面的調(diào)試日志你可以使用來(lái)關(guān)閉它參考鏈接總結(jié)以上就是總結(jié)的條關(guān)于的建議,這幾乎是所有項(xiàng)目都用得到的配置技巧吧 原文地址 本文是作者對(duì)自己所學(xué)的webpack技巧的總結(jié),在沒(méi)有指定特殊情況下適用于webpack 3.0版本。 進(jìn)度匯報(bào) 使用webpack --progress --colors這樣可以讓編譯的輸出...
摘要:只在中有效你的文件在開(kāi)發(fā)者工具中顯示為。參考鏈接清除日志如果你在使用時(shí)看過(guò)下面的調(diào)試日志你可以使用來(lái)關(guān)閉它參考鏈接總結(jié)以上就是總結(jié)的條關(guān)于的建議,這幾乎是所有項(xiàng)目都用得到的配置技巧吧 原文地址 本文是作者對(duì)自己所學(xué)的webpack技巧的總結(jié),在沒(méi)有指定特殊情況下適用于webpack 3.0版本。 進(jìn)度匯報(bào) 使用webpack --progress --colors這樣可以讓編譯的輸出...
摘要:只在中有效你的文件在開(kāi)發(fā)者工具中顯示為。參考鏈接清除日志如果你在使用時(shí)看過(guò)下面的調(diào)試日志你可以使用來(lái)關(guān)閉它參考鏈接總結(jié)以上就是總結(jié)的條關(guān)于的建議,這幾乎是所有項(xiàng)目都用得到的配置技巧吧 原文地址 本文是作者對(duì)自己所學(xué)的webpack技巧的總結(jié),在沒(méi)有指定特殊情況下適用于webpack 3.0版本。 進(jìn)度匯報(bào) 使用webpack --progress --colors這樣可以讓編譯的輸出...
摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...
閱讀 3686·2021-09-07 10:19
閱讀 3627·2021-09-03 10:42
閱讀 3584·2021-09-03 10:28
閱讀 2548·2019-08-29 14:11
閱讀 809·2019-08-29 13:54
閱讀 1594·2019-08-29 12:14
閱讀 417·2019-08-26 12:12
閱讀 3614·2019-08-26 10:45