一、定義及使用全局變量
碭山網(wǎng)站建設公司創(chuàng)新互聯(lián),碭山網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為碭山成百上千提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的碭山做網(wǎng)站的公司定做!
1.在js的function外定義一個變量
var?name='測試';
function?XX(){
alert(name);
}
2.不使用var,直接給定義變量,隱式的聲明了全局變量
name='測試';
function?XX(){
alert(name);
}
這種方法,即使該變量是在一個function內(nèi),當該function被執(zhí)行后它變成了全局變量 ---- 但是function不執(zhí)行它就不被其他function知道,所以最好定義在function外
3.使用window.變量名定義為全局變量,但是注意:調(diào)用時候建議寫上window.變量名,當然也可以不寫;我們常用的document.getXXX的document對象就是window的
window.name='測試';
function?XX(){
alert(window.name);
}
二、使用全局變量
全局變量的優(yōu)點:
可以減少變量的個數(shù),減少由于實際參數(shù)和形式參數(shù)的數(shù)據(jù)傳遞帶來的時間消耗。
全局變量的缺點:
(1)全局變量保存在靜態(tài)存貯區(qū),程序開始運行時為其分配內(nèi)存,程序結(jié)束釋放該內(nèi)存。與局部變量的動態(tài)分配、動態(tài)釋放相比,生存期比較長,因此過多的全局變量會占用較多的內(nèi)存單元。
(2)全局變量破壞了函數(shù)的封裝性能。函數(shù)象一個黑匣子,一般是通過函數(shù)參數(shù)和返回值進行輸入輸出,函數(shù)內(nèi)部實現(xiàn)相對獨立。但函數(shù)中如果使用了全局變量,那么函數(shù)體內(nèi)的語句就可以繞過函數(shù)參數(shù)和返回值進行存取,這種情況破壞了函數(shù)的獨立性,使函數(shù)對全局變量產(chǎn)生依賴。同時,也降低了該函數(shù)的可移植性。
(3)全局變量使函數(shù)的代碼可讀性降低。由于多個函數(shù)都可能使用全局變量,函數(shù)執(zhí)行時全局變量的值可能隨時發(fā)生變化,對于程序的查錯和調(diào)試都非常不利。
因此,如果不是萬不得已,最好不要使用全局變量。
script
var a=0;//全局變量,也是一個對象
function show1(){
var b=1;//局部變量
alert(a+"和"+b);//局部變量只能在一個{}內(nèi)使用,全局變量在整個頁面任何地方都可以使用
}
function show2(){
alert(a);//全局變量在整個頁面任何地方都可以使用
}
/script
javascript沒有整型變量這個概念,變量可以被賦值為任何類型的值。數(shù)值類型只有Number,不區(qū)分整數(shù)、浮點、長整等,直接賦值為一個整數(shù)即可。如果使用過程中必須用到整數(shù),可以通過Math.round(number),parseInt(string)等函數(shù)取整,再使用。
[img]全局變量,作用域為所屬的整個程序。
定義形式:
在函數(shù)外定義。
在函數(shù)內(nèi)定義,但是不加 var 聲明。
使用 window.變量名 的形式定義。(注:兼容性未知)
使用 window['變量名'] 的形式定義。(注:兼容性未知)
局部變量,作用域為所屬的函數(shù)內(nèi)部。
定義形式:
在函數(shù)內(nèi)部定義的變量。
函數(shù)中用到的形式參數(shù)。
例子:
var a =0; //全局變量
b =0; //全局變量
function c() {
var d =0; //局部變量
e =0; //全局變量
return d;
}
console.log(a); //0
console.log(b); //0
console.log(c()); //0
console.log(e); //0
console.log(d); //出錯