亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

直面JavaScript中的30個疑難雜癥

公明2020 Web前端工程師
難度中級
時長 5小時 3分
學習人數
綜合評分9.57
19人評價 查看評價
9.7 內容實用
9.8 簡潔易懂
9.2 邏輯清晰
  • CSSOM樹

    查看全部
  • null轉成數字是0,undefined轉成數字并不是0,而是NaN。

    null == undefined 并不是因為都被轉成了0,而是因為它們兩個都代表“沒有”,所以ECMAScript文檔里面特殊規定了它們是寬松相等的

    查看全部
    1. instanceof返回布爾值:true/false;

    2. a instanceof b? // a對象是否是b實例化后的,instanceof是根據原型鏈進行檢測的;

    3. 與typeof的區別:

      1》輸出結果不同,typeof輸出數據類型(少了null,多了function,object判定方式根據是否有【call】,有call檢測為function,無為object),instanceof輸出布爾值

      2》typeof監測引用類型為object,不準確

    查看全部
  • 數據類型:

    基礎:undefined?null?number?string?boolean
    引用:object


    typeof(null) 為什么是object 不是null?

    使用typeof檢測是通過鑒別機器碼后三位判斷:000位object,null的機器碼為000000

    http://img1.sycdn.imooc.com//62062bcf0001d72c07040436.jpg


    http://img1.sycdn.imooc.com//62062c5900015db809060442.jpg


    new實例化獲得的對象開辟堆空間,類型屬于object;

    查看全部
  • 深淺拷貝

    遍歷賦值

    Object.create()

    JSON.parse() 和JSON.stringify()


    跟著變的是 淺拷貝, 沒變是深拷貝。

    查看全部
  • array.sort 是根據unicode碼表來排序的,0-9,a-z 漢字。

    解決數字排序方案:傳一個比較函數進去function (x, y) { return x-y }

    查看全部
  • http://img1.sycdn.imooc.com//61d4432d0001d2c201240102.jpgcewfcqwc

    查看全部
  • NaN,0,undefined,null // false,用boolean轉換

    == 會有隱式轉換,轉成number的形式
    === 不會進行隱式轉換

    IEEE754 標準
    二進制轉十進制的時候精度丟失
    0.1? + 0.2? // 0.30000000000000004
    方案1:toFixed()
    方案2:? n = Math.pow(10, x); (0.1 *n + 0.2 * n) /n 即可

    sort?
    function sort(a, b) { return a - b; } // 升序排序,
    a - b < 0 a移到b的前面
    a - b = 0 位置不變
    a - b > 0 a移到b的后面

    new Date().getTime() // 毫秒數
    new Date().getDay() // 本周的第幾天, 1-7
    new Date().getDate() // 本月幾號
    new Date().getMonth() // 第幾月,0-11


    查看全部
  • 繼承
    繼承的6種方式:
    簡單原型鏈:類式繼承
    借用構造函數:缺點=父類的原型方法自然不會被子類繼承
    組合繼承:類式繼承+構造函數繼承
    寄生組合繼承:跟類式繼承一樣,父類對象中的值類型的屬性被復制,引用類型的屬性被共有
    原型式寄生式:通過在一個函數內的過度對象實現繼承并返回新對象的方式

    查看全部
  • 匿名函數:節約內存空間,調用前和調用后內存中不創建任何函數對象
    回調函數:將一個函數作為對象交給其他函數使用
    遞歸函數:循環的調用函數本身
    構造函數:用來新建對象
    變量對象:VO variable object 一般是全局環境下保存變量的對象
    活動對象:AO activation object,函數的執行環境是在調用時創建的,該對象代替VO對象來保存當前函數環境中的變量,參數,函數,所以在函數執行環境中的VO就是AO

    重載:在程序中可以定義相同名字,不同參數的形式的不同函數,函數在調用的函數的時候,自動識別不同參數對應的函數,實現相同函數名不同的函數調用,js沒有重載,但是可以通過arguments實現函數重載
    多態:同個東西在不同情況下的表現不同狀態,重寫和重載
    局部函數,this指向window

    查看全部
  • html事件:在html標簽綁定事件
    dom0事件:事件綁定,用js綁定
    dom2事件:事件監聽,addeventListenor(事件名,觸發函數,是否是冒泡)/attaEvent,綁定多個事件
    原因:js事件不支持事件重載,綁定事件相當于一個變量存儲的是函數的地址,如果在綁定一個事件,相當于變量指向另一個函數的地址;事件監聽相當于訂閱發布者,改變了數據,觸發了事件,訂閱這個事件的函數被執行

    事件對象:事件觸發時候自動創建的,封裝了事件發生的元素和屬性信息,即event

    查看全部
  • DOM樹加載的過程:
    1 url,DNS域名解析,找到IP,向服務器發起請求
    2 在服務器返回數據,瀏覽器接收文件(html、css、js...),二進制文件
    ? html:二進制轉換為html
    ? 構建DOM樹,HTML解析器
    ? ? ? ?Tocken->Node->DOM

    ? ? ? ?Tocken詞法解析,根是“document”對象
    ? ? ? ?Node:HTMLDivElement
    ? ? ? ?DOM:DOM和標簽基本是一一對應的關系
    ? ?解析過程:
    ? ? ? ?1 遇到link的外部css,遇到css的代碼會進行css的加載,并行
    ? ? ? ?2 遇到script標簽,會先去執行js的內容,直至腳本完成執行,然后繼續構建DOM;
    ? ? ? ? ?底部引入js的原因,或者在頭部引用,需加上async、defer,或者window.onload:
    ? ? ? ? ?解析器遇到設置了async的script時,開始下載腳本并繼續解析文檔,腳本會在它下載完成后盡快執行,但是解析器不會停下來等它下載
    ? ? ? ? ?如果script標簽設置了該屬性,則瀏覽器會在異步的下載該文件并且不會影響后續DOM的渲染;
    ? ? ? ? 如果有多個設置了defer的script標簽存在,則會按照書訊執行所有的script
    ? ? ? ? defer腳本會在文檔渲染完畢后,DOMContentLoaded事件調用前執行;腳本會被延遲到整個頁面解析完畢后在運行
    3 構建CSS樹:CSS解析器
    ? ? ? ? 每個css文件解析為樣式表對象cssstylesheet,每個對象都包含CSSRule;CSSRule包含選擇器和聲明對象,已經其他與CSS語法對應的對象
    ? ? ? ? Tocken解析:css語法及語法文法
    ? ? ? ? Node->CSSOM

    4 構建render樹,渲染樹=DOM樹+css樹
    5 布局layout與繪制paint:計算對象之間的大小,距離確定每個節點在屏幕上的確切坐標,映射瀏覽器屏幕的繪制;使用UI后端層繪制每個節點
    ? reflow(回流):當元素屬性發生變化且影響布局時(寬度、高度、內外邊距等),產生回流,相當于刷新頁面
    ? repaint(重繪):當元素屬性發生改變且不影響布局時(背景顏色、透明度、字體樣式等),產生重繪不一定引起回流,回流必將引起重繪

    查看全部
  • 測試一下筆記

    查看全部
  • typeof:返回object,null,function,undefiend

    instanceof:檢測布爾值,Triue OR false

    查看全部
  • <script>

    //作用域scope:一個變量的可用范圍;{a:1】}}

    //作用域鏈scope chain:以當前作用域的scope屬性為起點依次引用每個A0,直到window結束,形成多級引用關系

    //js作用域:ES5

    //兩大類:全局作用域、函數作用域

    //解釋執行,在執行過程中,JavaScript引擎是嚴格按著作用域機制(scope)來執行的,并且Javascript的變量

    和函數作用域是在定義時決定的,而不是執行時決定的。JavaScript中的變量作用域在函數體內有效,無塊作用域

    查看全部

舉報

0/150
提交
取消
課程須知
1、有一定的前端JavaScript基礎的用戶 2、想對JavaScript有更深層次的了解,或者是對常見JavaScript面試題難以理解的用戶 3、技術儲備:JavaScript、HTML、CSS
老師告訴你能學到什么?
JavaScript中比較重要的知識點,例如數據類型檢測;面試中常見的閉包、作用域和作用域鏈、執行上下文等等;還有JavaScript中的原型、原型鏈,面向對象問題,以及實戰開發的運用。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!