《你不知道的JavaScript-中》讀書筆記

前言

這本書的中冊還是相當(dāng)值得推薦的。
就算對在異步流程中已經(jīng)踩過很多坑的我來說,也還是有些可以值得學(xué)習(xí)的東西。

只把自己記下來的東西寫一下,推薦大家還是可以看書。

JSON.stringify(obj,arg1,arg2)

對于符合的JSON會(huì)轉(zhuǎn)換,對于不符合的JSON 格式會(huì)忽略。不符合的JSON格式如下:

  • undefined
  • function
  • symbol

arg1 可以是一個(gè)數(shù)組,包含序列化之后留下來的屬性名稱

JSON.stringify({a:1,b:2},['a'])  //'{"a":1}'

arg1還可以是一個(gè)函數(shù),函數(shù)有兩參,一個(gè)是key,一個(gè)是value

arg2是一個(gè)正整數(shù),表示格式化后的縮進(jìn)。這個(gè)在某些時(shí)候比較好用。例如谷歌瀏覽器的console.log的實(shí)現(xiàn)是一個(gè)異步的過程。所以想要準(zhǔn)確的獲得某個(gè)點(diǎn)的對象值,一個(gè)是debugger,另一個(gè)就是該對象的副本。我最常用的實(shí)現(xiàn)方式JSON.stringify(obj,null,2)

一些難以理解但又可以解釋的操作

//parseInt系列
parseInt(1/0,19) // parseInt("Infinity",19) => parseInt("I",19) => 18
parseInt(0.000008) //0
parseInt(0.0000008) // parseInt("8e-7") => 8
parseInt(false,16) //parseInt("fa",16) => 250
parseInt(parseInt,16)//parseInt("function",16) => 15

//如果一邊是字符串或數(shù)字,一邊是對象,則x == ToPrimitive(y)
''42" == true  //false
"42" == false //false

//下面都是對的
0 == []
"" == []
false == []

//
[] + {} //[object object]
{} + [] // 0 

一些不常用的東東

try{}catch(){}finally{} 中finally里面的return會(huì)覆蓋catch和try中的return
DOM中的ID會(huì)在全局創(chuàng)建一個(gè)同名變量
ASI自動(dòng)糾錯(cuò)機(jī)制,會(huì)根據(jù)換行自動(dòng)插入分號

promise

promise比回調(diào)好的地方

  • 回調(diào)不可信任,永遠(yuǎn)不知道回調(diào)是否是異步,導(dǎo)致執(zhí)行順序問題,某些情況下還會(huì)產(chǎn)生競價(jià)狀態(tài)
  • 代碼邏輯不符合人腦

學(xué)到一個(gè)promiseify,可以將擁有回調(diào)函數(shù)并且錯(cuò)誤優(yōu)先的函數(shù)包裝成一個(gè)promise

const promiseify = function(fn){
    return function(...args){
          return new Promise((rs,rj)=>{
                fn.call(null,...args,function(err,data){
                      if(err){
                              return rj(err);  
                      }
                      rs(data);
                });
          });
    };
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容