變量作用域:
1肌似、全局變量:在函數(shù)之外定義的變量费就,為整個(gè)頁(yè)面公用,函數(shù)內(nèi)部外部都可以訪問(wèn)川队。
2力细、局部變量:在函數(shù)內(nèi)部定義的變量,只能在定義該變量的函數(shù)內(nèi)部訪問(wèn)固额,外部無(wú)法訪問(wèn)眠蚂。
封閉函數(shù):是javascript中匿名函數(shù)的另外一種寫法:
(function(){
? ? var oDiv = document.getElementById('div1');
? ? oDiv.style.color = 'red';
})();
還可以在函數(shù)定義前加上“~”和“!”等符號(hào)來(lái)定義匿名函數(shù)
!function(){
? ? var oDiv = document.getElementById('div1');
? ? oDiv.style.color = 'red';
}()
閉包:
閉包的本質(zhì)就是函數(shù)嵌套,就是在函數(shù)里面定義函數(shù)斗躏,
內(nèi)部函數(shù)可以引用外部函數(shù)的參數(shù)和變量
參數(shù)和變量不會(huì)被垃圾回收機(jī)制給回收
閉包的用途:可以存循環(huán)的索引值逝慧、做私有變量計(jì)數(shù)器
單次定時(shí)器:
var timer = setTimeout(function(){
alert('hello!');
}, 3000);
清除單次定時(shí)器
clearTimeout(timer);
反復(fù)循環(huán)定時(shí)器
var timer2 = setInterval(function(){
alert('hi~~~');
}, 2000);
清除反復(fù)循環(huán)定時(shí)器
clearInterval(timer2);
內(nèi)置對(duì)象:
document:
document.referrer? //獲取上一個(gè)跳轉(zhuǎn)頁(yè)面的地址(需要服務(wù)器環(huán)境)
location:
window.location.href? //獲取或者重定url地址
window.location.search //獲取地址參數(shù)部分
window.location.hash //獲取頁(yè)面錨點(diǎn)或者叫哈希值
Math:
Math.random 獲取0-1的隨機(jī)數(shù)
Math.floor 向下取整
Math.ceil 向上取整