javaScript常用面試題

什麼是javaScript?

1、javaScript是解釋性的腳本語言,代碼不進行預編譯;
2、主要用來向HTML頁面添加交互行爲;
3、可以直接嵌入到HTML頁面,但是單獨寫成JS文件有利於結構和行爲的分離;
4、跨平臺性,在絕大多數瀏覽器支持下,可以在多種平臺下運行;

window.onload和$(document).ready的區別

1、window.onload只能出現一次(用於在網頁加載完畢之後立即執行的操作即在HTML加載完畢後立即執行的方法),(document).ready2window.onload(document).ready可以出現多次; 2、window.onload需要等所有文件加載完才進行加載,(document.ready)只需等文檔結構加載完就可以進行加載;

爲什麼要使用window.onload()$(document).ready呢?

因爲javaScript函數方法需要在html進行渲染完成之後纔可以使用,如果沒有渲染完成,我們的dom樹是不完整的,這樣在調用javaScript方法的時候就可能爆出undefine的錯誤;

javaScript基本數據類型和引用數據類型

基本數據類型:number、String、undefine、null、boolean
引用數據類型:object、array、function

call、apply、bind

call寫法
可以改變this的指向,這裏模擬下call改變this的指向問題;

function add(a,b)  
{  
    alert(a+b);  
}  
function sub(a,b)  
{  
    alert(a-b);  
}  
  
add.call(sub,3,1);

上面這個例子就是add來替換sub,相當於改變了this的指向,相當於add.call(sub,3,1) == add(3,1) ,所以運行結果爲:alert(4);
apply寫法

function add(a,b)  
{  
    alert(a+b);  
}  
function sub(a,b)  
{  
    alert(a-b);  
}  
add.apply(sub,[4,2]);

不同於上一種寫法,apply寫成數組

blind寫法

function add(a,b)  
{  
    alert(a+b);  
}  
function sub(a,b)  
{  
    alert(a-b);  
}  
add.blind(sub4,2)();

判斷是否爲數組的方法

console.log(arr instanceof Array);
console.log(arr.construct===Array);
console.log(Array.isArray(arr));

注意:bind是返回了一個改變上下文的一個函數,可以稍後調用,call、apply是立即執行的函數;

js中的函數其實就是對象,函數名就是function對象的引用;

原文鏈接:https://segmentfault.com/a/1190000011875256?utm_source=tag-newest

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章