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

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

直面JavaScript中的30個疑難雜癥

公明2020 Web前端工程師
難度中級
時長 5小時 3分
學習人數
綜合評分9.57
19人評價 查看評價
9.7 內容實用
9.8 簡潔易懂
9.2 邏輯清晰
  • 常見函數的四種類型有哪些

    匿名函數:優點占用內存空間小

    回調函數:ajax

    小遞歸函數:

    構造函數:

    查看全部
  • 三種事件綁定的異同


    ◆htm事件

    ◆dom0級事件

    ◆dom2級事件

    <body>

    < input type=" button" value="htm事件點擊" onclick="fun()"丬r

    input type=" button" value="dome級事件"id="btn"

    input type=" button" value="dom2級事件"id="btn1">

    <script>

    /// JAvascript: ECMAScript DOM +BOM DOMe DOM1 DOM2

    //狹義] avascript: ECMAScript ES6Es5Es3

    /1、htm1事件

    function fun (){

    alert("hello Mooc")

    }

    2、dom級事件:事件綁定

    document. getElementById(btn").onclick= function(){

    alert('hello MOOC2')}?



    //3、dom2級事件:事件監聽

    //element.addEventListener(event,function,useCapture)removeEventListener

    //event:(必需)事件名,支持所有DOM事件。

    //function:(必需)指定要事件觸發時執行的函數。

    //useCapture:(可選)指定事件是否在捕獲或冒泡階段執行。true,捕獲。false,冒泡。默認false

    //IE8:element.attachEvent(event,function)

    //event:(必需)事件類型。需加“on“,例如:onclick。

    //function:(必需)指定要事件觸發時執行的函數。

    document.getElementById("btn1").addEventListener("click",fun2);

    function fun2(){

    alert('hello MOOC3')

    }

    /事件監聽的優點:可以綁定多個事件;常規的事件綁定只執行最后綁定的事件

    //js不支持事件重載,綁定事件相當于一個變量存儲的是函數的地址,如果再綁定一個事件,相當于變量指向另一個函數的地址;事件監聽相當于訂閱發布者,改變了數據,觸發了事件,訂閱這個事件的函數被執行

    查看全部
  • 1.在瀏覽器中輸入ur1,交給DNs域名解析,找到P,向服務器發起請求;(里面還有緩存ht協議,TcP,

    2.服務器返回數據,瀏覽器接收文件(htm1, css,Js,ing..),二進制文件

    htm1:二進制轉換為htm1

    構建Dom樹:HTML解析器

    Token ->Node->DOM

    Token詞法解析,根是“ document”對象

    Node: HTMLDivElement

    DoM:DoM和標簽基本是一一對應的關系div

    解析過程中:

    1.遇到1ink的外部css,遇到css的代碼會進行css加載,并行

    2遇見 script標簽的時候,會先去執行js的內容,直至腳本完成執行,然后繼續構建DoM;

    底部引入 javascript代碼的原因?;蛘哒f可以在頭部引用,但是前提是加上 async、 defer,或

    window. onload;

    解析器遇到設置了 async屬性的 script時,開始下載腳本并繼續解析文檔。腳本會在它下載完成后盡

    快執行,但是解析器不會停下來等它下載

    如果 script標簽設置了該屬性,則瀏覽器會異步的下載該文件并且不會影響到后續Do網的渲染

    如果有多個設置了 defer的 script標簽存在,則會按照順序執行所有的 script

    defer腳本會在文檔渲染完畢后, DOMContentloaded事件調用前執行;腳本會被延遲到整個頁面都解析完畢后再運行

    構建css樹:CSs解析器 index.css

    每個Css文件解析為樣式表對象 CSSStyleSheet,每個對象都包含 CSSRule; CSSRule包含選擇器和聲明對象,以及其他與CSS語法對應的對象

    Token解析:css的詞法及語法文法

    Node->CSSOM

    http://img1.sycdn.imooc.com//61792252000190db10820391.jpg


    構建 render:渲染樹=DOM樹+css樹

    布局layout與繪制 paint:計算對象之間的大小,距離確定每個節點在屏幕上的確切坐標:映射瀏覽器屏幕繪制;使用UI后端層繪制每個節點

    reflow(回流):當元素屬性發生改變且影響布局時(寬度、高度、內外邊距等),產生回流,相當于

    刷新貞面

    repaint(重繪);當元素屬性發生改變且不影響布局時(背景顏色、透明度、字體樣式等),產生重

    繪,相當于不刷新頁面,動態更新內容

    重繪不一定引起回流,回流必將引起重繪

    查看全部
  • 帶你深入理解棧和隊列

    什么是棧和隊列

    push、pop、unshift、shift方法

    //棧是一種后進先出的數據結構,也就是說最新添加的項最早被移出;LIFO(Last-In-First-Out,后進先出)

    //隊列數據結構的訪問規則是FIFO(Fist-In-First-Out,先進先出)。隊列在列表的末端添加項,從列表的前端移除項


    結尾出入棧 不影響原有的數據位置索引 --- 效率高? push(num), arr.pop();

    開頭出入棧影響原有的數據位置索引---效率低 unshift(num),arr.shift();

    查看全部
  • //裝箱:把基本數據類型轉化為對應的引用數據類型的操作;

    //var num=123//number

    // var objNum = new Number(123)// obejct

    //console.log(typeof objNum)//null

    //拆箱:將引用類型對象轉換為對應的值類型對象;

    //valueof()

    // var objNum = new Number(123)

    //console.log(typeof objNum.valueof())//123 number


    // js toPrimitive(input,type)input:傳入的值type:值類型

    //1.input判斷是不是原始類型的值:是直接返回

    //2.不是:|input.valueof():是原始類型;直接返回

    //3.還不是:input.toString():string是原始類型返回

    //4.報錯


    //valueof():input原始類型的值;有:返回,沒有;返回對象本身

    //tostring():input字符串轉換;對象:[object type]type:對象類型

    //面試題

    console.log([]+[])//"+toPrimitive()

    console.log([].valueof())//

    查看全部
  • js中常見的內置對象有哪些?

    三種包裝對象:String、Number、Boolean

    其他常用的標準內置對象:Array、Date、Function、Object...

    查看全部
  • json.parse(json.stringfy(obj))

    查看全部
  • 遍歷賦值,淺拷貝

    查看全部
  • 棧:計算機為原始類型開辟的一塊內存空間 :string number,...

    堆:計算機為引用類型開辟的一塊內存空間:object

    查看全部
  • 阻止默認時間

    ? http://img1.sycdn.imooc.com//614d76800001cfdf13220818.jpg

    查看全部
  • 編碼和解碼

    http://img1.sycdn.imooc.com//614c0c2f0001cd7216790915.jpg

    查看全部
  • 排序

    http://img1.sycdn.imooc.com//614bf3e300014eb511410640.jpg

    查看全部
  • DOM樹加載

    1. 在瀏覽器中輸入url,交給DNS域名解析,找到IP,向服務器發起請求;

    2. 構建DOM樹和css樹

    3. 構建render樹

    重繪/回流

    查看全部
    1. new執行過程


    查看全部
    1. Function對象上的方法:call、apply、bind

    2. 類數組不具備數組的方法

      因此,可以進行類數組轉數組

      var arr=Array.prototype.slice.apply(arguments)

    3. apply和call方法,能劫持另外一個對象的方法,繼承另外一個對象的屬性

    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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