什麼是javaScript?
1、javaScript是解釋性的腳本語言,代碼不進行預編譯;
2、主要用來向HTML頁面添加交互行爲;
3、可以直接嵌入到HTML頁面,但是單獨寫成JS文件有利於結構和行爲的分離;
4、跨平臺性,在絕大多數瀏覽器支持下,可以在多種平臺下運行;
window.onload和$(document).ready的區別
1、window.onload只能出現一次(用於在網頁加載完畢之後立即執行的操作即在HTML加載完畢後立即執行的方法),(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