JavaScript之全域性變數和區域性變數

2021-07-24 12:24:55 字數 752 閱讀 2690

全域性變數可以在js指令碼的任何地方被引用,一旦某個指令碼宣告了乙個全域性變數,則該變數的作用域就是整個指令碼

區域性變數只存在於它做出宣告的函式內部,函式外部無法引用它,區域性變數的作用域僅限於某個特定函式

函式內部既可以用區域性變數又可以用全域性變數,如果某個函式中使用var宣告,則那個變數就被視為區域性變數,它將只存在於這個函式的上下文中,反之,如果沒有使用var宣告,則那個變數就被視為全域性變數,如果你的指令碼庫里已經存在乙個與之同名的變數,這個函式將覆蓋那個現有的變數的值

function double(num)

var total=20;

var number=double(10);

alert(total);

這段**將更改全域性變數total的值,如果不想修改total的值則只需在函式內用var宣告total即可,函式內區域性變數將覆蓋全域性變數

以下分享乙個關於全域性變數和區域性變數有意思的問題

一眼看過去結果是不是10 2 10,然而實際卻不是,正確答案是undefined 2 10,這是為什麼呢?

因為區域性變數的作用域是某乙個特定的函式,所以只要在函式中定義了乙個區域性變數,不論這個定義放的位置在哪,它都是乙個區域性變數,所以第乙個alert(a)中的a是區域性變數,但由於它的賦值在接下來的一行,所以它就顯示undefined,如果即使是按照這個順序依然想輸出全域性變數的a,則只需將函式中的第乙個alert(a)修改為alert(window.a)即可

Javascript之全域性變數和區域性變數

關於全域性變數和區域性變數的一句簡單的定義 在函式外宣告的變數都為全域性變數,在函式內宣告的為區域性變數。一 區域性變數和全域性變數重名會覆蓋全域性變數 var a 1 function test1 test1 2 複製 這裡的函式中的定義的a是區域性變數,它的作用域為函式 之間,函式外定義的a為全...

static全域性變數 全域性變數

1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...

Matlab之全域性變數

通過全域性變數可以實現matlab工作空間變數空間和多個函式的函式空間的共享,這樣,多個使用全域性變數的函式和matlab工作空間共同維護這一全域性變數,任何一處對全域性變數的修改,都會直接改變此全域性變數的取值。在應用全域性變數事,通常在各個函式內部通過global variable語句宣告,在命...