91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript中的變量范圍有什么不同

發布時間:2021-07-19 11:34:18 來源:億速云 閱讀:164 作者:chen 欄目:web開發

本篇內容介紹了“javascript中的變量范圍有什么不同”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

區別:在全局作用域中,變量在整個頁面腳本中都是可見的,可以被自由訪問。在局部作用域中,變量僅能在聲明的函數內部可見,函數外是不允許訪問的;函數執行完畢之后,局部作用域銷毀。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

變量范圍,可稱為“變量作用域(Scope)”,是指變量在程序中可以訪問的有效范圍,也稱為變量的可見性。

作用域

1、什么是作用域(Scope)

通常來說,一段程序代碼中所用到的名字不總是有效和可用的,而限定這個名字的可用性的代碼范圍就是這個名字的作用域。

JS作用域:就是代碼名字(變量)作用的范圍

作用域的目的:是為了提高程序的可靠性,更重要的是減少命名沖突

2、JS的作用域的分類(ES6之前)

JS作用域可以分為兩大類:全局作用域 、局部作用域(函數作用域)

1)全局作用域:

  直接編寫在 script 標簽之中的JS代碼,都是全局作用域;

  或者是一個單獨的 JS 文件中的。

  全局作用域在頁面打開時創建,頁面關閉時銷毀;

  在全局作用域中有一個全局對象 window(代表的是一個瀏覽器的窗口,由瀏覽器創建),可以直接使用。

在全局作用域中,

  • 所有創建的變量都會作為 window 對象的屬性保存。

javascript中的變量范圍有什么不同

  • 所有創建的函數都會作為 window 對象的方法保存。

javascript中的變量范圍有什么不同

2)局部作用域(函數作用域):

  在函數內部就是局部作用域,這個代碼的名字只在函數的內部起作用

  調用函數時創建函數作用域,函數執行完畢之后,函數作用域銷毀;

  每調用一次函數就會創建一個新的函數作用域,它們之間是相互獨立的。

實例分析:

在這個例子里面 un函數里面的 局部作用域中 有一個 num 變量,script 標簽的全局作用域中也有一個 num變量。

(一個在全局作用域下,另一個在局部作用域下,雖然兩個變量的變量名相沖突,但是并沒有影響。)

所以,在不同的作用域下,變量名相同也不受影響,這樣就很有效的減少了命名沖突。

<script>
    var num = 10;
    function nu(){
        var num = 20;
        console.log(num);
    }
    nu();
    console.log(num);
</script>

javascript中的變量范圍有什么不同

JS現階段(ES6之前)沒有塊級作用域,被塊級作用域就是用大括號({})包含的就是塊級作用域。

二、變量的作用域

JavaScript 變量可以分為全局變量和局部變量:

  • 全局變量:變量在整個頁面腳本中都是可見的,可以被自由訪問;其作用域為全局作用域。

  • 局部變量:變量僅能在聲明的函數內部可見,函數外是不允許訪問的;其作用域為局部作用域。

示例1

下面示例演示了全局變量和局部變量的關系。

var a = 1;  //聲明并初始化全局變量
function f(){  //聲明函數
    document.write(a);  //顯示undefined
    var a = 2;  //聲明并初始化局部變量
    document.write(a);  //顯示 2
}
f(); //調用函數

由于在函數內部聲明了一個同名局部變量 a,所以在預編譯期,JavaScript 使用該變量覆蓋掉全局變量在函數內部的影響。而在執行初期,局部變量 a 未賦值,所以在函數內第 1 行代碼讀取局部變量 a 的值也就是 undefined 了。當執行到函數第 2 行代碼時,為局部變量賦值 2,所以在第 3 行中就顯示為 2。

示例2

下面示例演示了如果不顯式聲明局部變量所帶來的后果。

var jQuery = 1;
(function () {
    jQuery = window.jQuery = window.$ = function(){};
})()
document.write(jQuery);  //顯示函數代碼:function(){}

因此,在函數體內使用全局變量是一種危險的行為。為了避免此類問題,應該養成在函數體內使用 var 語句顯式聲明局部變量的習慣。

“javascript中的變量范圍有什么不同”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南丰县| 米林县| 新泰市| 汤阴县| 永安市| 云和县| 盘锦市| 东光县| 新绛县| 革吉县| 沂水县| 公主岭市| 哈巴河县| 阿坝县| 广元市| 泽州县| 嘉义县| 萝北县| 宁远县| 依安县| 寿光市| 宜良县| 维西| 绥滨县| 静安区| 通山县| 香格里拉县| 彰武县| 武川县| 安康市| 万山特区| 台江县| 富源县| 平原县| 嵊州市| 侯马市| 遵义市| 宿松县| 山阳县| 连江县| 宜州市|