當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript之作用域
生活随笔
收集整理的這篇文章主要介紹了
javascript之作用域
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作用域屬性是在定義函數的時候決定的,不是在調用函數的時候決定。
JavaScript中的函數運行在它們被定義的作用域里,而不是它們被執行的作用域里。
-
eg.
var name = "lw";function alert_1 () {alert(name);}function alert_2 () {var name = "zgm";alert_1();}alert_2();// 結果:lw
js的預編譯:
在一段js代碼執行之前,會預先處理var關鍵字和function定義式(函數表達式和函數定義式),對于局部變量,變量的值會在真正執行的時候計算。
函數定義注意:函數定義式和函數表達式的不同, 對于函數定義式, 會將函數定義提前.而函數表達式, 會在執行過程中才計算。
-
eg.
alert(typeof hello);//結果:functionalert(typeof world);//結果:undefinedfunction hello(){ //函數定義式alert("hello");}var world=function(){ //函數表達式alert("world");}alert(typeof world);//結果:function -
js預編譯是以段為處理單元
<script>alert(typeof hello); //結果:undefined</script> <script>function hello() {alert('hello world');}</script> -
作用域鏈代碼優化在標識符解析的時候,查找全局變量是最慢的,所以盡量使用局部變量。
function changeColor(){var doc=document;doc.getElementById("NM").onclick=function(){doc.getElementById("AL").style.backgroundColor="red";};} 全局變量document的被調用兩次,查找該變量必須遍歷整個作用域鏈,耗費時間,可以把它存儲到局部變量里再使用。
總結
以上是生活随笔為你收集整理的javascript之作用域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iTerm的安装以及配置Oh My Zs
- 下一篇: Oracle 12C R2-新特性-转换