JavaScript解析過程分為兩個(gè)階段,先是編譯階段炬丸,然后執(zhí)行階段瘫寝,在編譯階段會(huì)將function定義的函數(shù)提前,并且將var定義的變量聲明提前稠炬,將它賦值為undefined焕阿。
定義的函數(shù)可以不給名稱,這個(gè)叫做匿名函數(shù)首启,可以將匿名函數(shù)直接賦值給元素綁定的事件來完成匿名函數(shù)的調(diào)用暮屡。
函數(shù)中'return'關(guān)鍵字的作用:
? ? ? ? ? ? ? ? ? ? ? 1、返回函數(shù)執(zhí)行的結(jié)果
? ? ? ? ? ? ? ? ? ? ? 2毅桃、結(jié)束函數(shù)的運(yùn)行
? ? ? ? ? ? ? ? ? ? ? 3褒纲、阻止默認(rèn)行為
封閉函數(shù) 是javascript中匿名函數(shù)的另外一種寫法,創(chuàng)建一個(gè)一開始就執(zhí)行而不用命名的函數(shù)钥飞。
什么是閉包:
閉包的本質(zhì)就是函數(shù)嵌套莺掠,就是在函數(shù)里面定義函數(shù),
函數(shù)嵌套函數(shù)读宙,內(nèi)部函數(shù)可以引用外部函數(shù)的參數(shù)和變量彻秆,參數(shù)和變量不會(huì)被垃圾回收機(jī)制收回
用處:
1、將一個(gè)變量長期駐扎在內(nèi)存當(dāng)中,可用于循環(huán)中存索引值
2唇兑、做私有變量計(jì)數(shù)器酒朵,外部無法訪問,避免全局變量的污染
內(nèi)置對(duì)象:
1幔亥、document
? ? ? ? ? ? document.referrer? //獲取上一個(gè)跳轉(zhuǎn)頁面的地址(需要服務(wù)器環(huán)境)
2耻讽、location
? ? ? ? ? ? ? window.location.href? //獲取或者重定url地址
? ? ? ? ? ? ? window.location.search //獲取地址參數(shù)部分
? ? ? ? ? ? ? window.location.hash //獲取頁面錨點(diǎn)或者叫哈希值
3、Math
? ? ? ? ? ? Math.random 獲取0-1的隨機(jī)數(shù)
? ? ? ? ? ? Math.floor 向下取整
? ? ? ? ? ? Math.ceil 向上取整