好程式設計師web前端教程分享JavaScript面試題
好程式設計師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。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2663198/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端教程分享Jquery常見面試題程式設計師Web前端jQuery面試題
- 好程式設計師web前端教程分享Vue.js面試題程式設計師Web前端Vue.js面試題
- 好程式設計師web前端教程分享javascript 練習題程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享前端javascript練習題二程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享前端javascript練習題三程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享前端 javascript 練習題二程式設計師Web前端JavaScript
- 好程式設計師web前端分享常見面試題程式設計師Web前端面試題
- 好程式設計師web前端教程分享前端javascript練習題之promise程式設計師Web前端JavaScriptPromise
- 好程式設計師web前端教程分享HTML/CSS部分常見面試題程式設計師Web前端HTMLCSS面試題
- 好程式設計師web前端分享前端 javascript 練習題程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享Vue面試題程式設計師Web前端Vue面試題
- 好程式設計師web前端教程分享HTML5面試技巧程式設計師Web前端HTML面試
- 好程式設計師web前端教程分享前端javascript練習題Ajax封裝程式設計師Web前端JavaScript封裝
- 好程式設計師web前端教程分享JavaScript簡寫方法程式設計師Web前端JavaScript
- 好程式設計師Web前端教程分享JavaScript開發技巧程式設計師Web前端JavaScript
- 好程式設計師web前端分享前端javascript練習題三程式設計師Web前端JavaScript
- 好程式設計師web前端分享前端javascript練習題一程式設計師Web前端JavaScript
- 好程式設計師Web前端培訓分享jQuery面試題梳理程式設計師Web前端jQuery面試題
- 好程式設計師Java教程分享JavaScript常見面試題一程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題五程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題四程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題三程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題二程式設計師JavaScript面試題
- 好程式設計師web前端教程分享前端javascript練習題之閉包案例程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享JavaScript Math(算數)物件程式設計師Web前端JavaScript物件
- 好程式設計師web前端培訓分享Vue面試題1.程式設計師Web前端Vue面試題
- 好程式設計師web前端培訓分享HTML/CSS部分面試題程式設計師Web前端HTMLCSS面試題
- 好程式設計師web前端學習路線分享前端基礎面試題程式設計師Web前端面試題
- 好程式設計師web前端教程分享JavaScript的執行機制!程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享CSS技巧!程式設計師Web前端CSS
- 好程式設計師web前端教程分javascript練習題-事件程式設計師Web前端JavaScript事件
- 好程式設計師web前端培訓分享JS面試題總結一程式設計師Web前端JS面試題
- 好程式設計師web前端教程分享常見基礎面試題之效能最佳化程式設計師Web前端面試題
- 好程式設計師web前端教程分享web前端基礎知識程式設計師Web前端
- 好程式設計師web前端教程JavaScript系列之HTTP程式設計師Web前端JavaScriptHTTP
- 好程式設計師web前端教程分享js閉包程式設計師Web前端JS
- 好程式設計師web前端教程分享js模板模式程式設計師Web前端JS模式
- 好程式設計師HTML5大前端分享web前端面試題程式設計師HTML前端Web面試題