• <dd id="by9vk"><pre id="by9vk"></pre></dd>
  • <dd id="by9vk"></dd>
    <progress id="by9vk"><pre id="by9vk"></pre></progress><tbody id="by9vk"></tbody>
    <tbody id="by9vk"></tbody>

    <rp id="by9vk"><ruby id="by9vk"></ruby></rp>

    好程序員-千鋒教育旗下高端IT職業教育品牌

    400-811-9990
    我的賬戶
    好程序員

    專注高端IT職業培訓

    親愛的猿猿,歡迎!

    已有賬號,請

    如尚未注冊?

    [HTML5] 好程序員web前端教程分享JavaScript面試題

    [復制鏈接]
    70 0
    葉子老師 發表于 2019-11-7 18:30:54 | 只看該作者 |閱讀模式 打印 上一主題 下一主題
      好程序員web前端教程分享JavaScript面試題
      1、JavaScript this指針、閉包、作用域
      this:指向調用上下文
      閉包:內層作用域可以訪問外層作用域的變量
      作用域:定義一個函數就開辟了一個局部作用域,整個js執行環境有一個全局作用域
      2、JavaScript的同源策略
      一段腳本只能讀取來自于同一來源的窗口和文檔的屬性,這里的同一來源指的是主機名、協議和端口號的組合
      http,ftp:協議
      主機名;localhost
      端口名:80:http協議的默認端口
      https:默認端口是8083
      同源策略帶來的麻煩:ajax在不同域名下的請求無法實現,
      如果說想要請求其他來源的js文件,或者json數據,那么可以通過jsonp來解決
      3、看下列代碼,輸出什么?解釋原因
      var undefined;//此時undefined這個變量的值是undefined
      undefined == null; // true
      1 == true; // true
      此時會把布爾類型的值轉換為數字類型 true=1 false=0
      2 == true; // false
      0 == false; // true
      0 == ''; // true
      NaN == NaN; // false
      [] == false; // true
      [] == ![]; // true
      undefined與null相等,但不恒等(===)
      一個是number一個是string時,會嘗試將string轉換為number
      嘗試將boolean轉換為number,0或1
      嘗試將Object轉換成number或string,取決于另外一個對比量的類型
      所以,對于0、空字符串的判斷,建議使用 “===” 。“===”會先判斷兩邊的值類型,類型不匹配時為false。
      4、請你談談Cookie的弊端
      1.`Cookie`數量和長度的限制。每個domain最多只能有20條cookie,每個cookie長度不能超過4KB,否則會被截掉。
      2.安全性問題。如果cookie被人攔截了,那人就可以取得所有的session信息。即使加密也與事無補,因為攔截者并不需要知道cookie的意義,他只 要原樣轉發cookie就可以達到目的了。
      3.有些狀態不可能保存在客戶端。例如,為了防止重復提交表單,我們需要在服務器端保存一個計數器。如果我們把這個計數器保存在客戶端,那么 它起不到任何作用。
      5、哪些操作會造成內存泄漏?
      內存泄漏指任何對象在您不再擁有或需要它之后仍然存在。
      垃圾回收器定期掃描對象,并計算引用了每個對象的其他對象的數量。如果一個對象的引用數量為0(沒有其他對象引用過該對象),或對該對象的 惟一引用是循環的,那么該對象的內存即可回收。
      1. setTimeout 的第一個參數使用字符串而非函數的話,會引發內存泄漏。
      2. 閉包
      3. 控制臺日志
      4. 循環(在兩個對象彼此引用且彼此保留時,就會產生一個循環)
      6、輸出多少?
      var a = 6;
      setTimeout(function () {
      var a = 666;//由于變量a是一個局部變量
      alert(a); // 輸出666,
      }, 1000);
      a = 66;
      因為var a = 666;定義了局部變量a,并且賦值為666,根據變量作用域鏈,
      全局變量處在作用域末端,優先訪問了局部變量,從而覆蓋了全局變量。
      var a = 6;
      setTimeout(function () {
      //變量聲明提前
      alert(a); // 輸出undefined
      var a = 666;
      }, 1000);
      a = 66;
      因為var a = 666;定義了局部變量a,同樣覆蓋了全局變量,但是在alert(a);之前
      a并未賦值,所以輸出undefined。
    好程序員web前端教程http://www.jyf24.com/html5_class.shtml

    精彩內容,一鍵分享給更多人!
    收藏
    收藏0
    轉播
    轉播
    分享
    淘帖0
    支持
    支持0
    反對
    反對0
    回復

    使用道具 舉報

    您需要登錄后才可以回帖

    本版積分規則

    關注我們
    好程序員
    千鋒好程序員

    北京校區(總部):北京市海淀區寶盛北里西區28號中關村智誠科創大廈

    深圳西部硅谷校區:深圳市寶安區寶安大道5010號深圳西部硅谷B座A區605-619

    杭州龍馳智慧谷校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層

    鄭州校區:鄭州市二七區航海中路60號海為科技園C區10層、12層

    Copyright 2007-2019 北京千鋒互聯科技有限公司 .All Right

    京ICP備12003911號-5 京公安網11010802011455號

    請您保持通訊暢通1對1咨詢馬上開啟

    Pictoa