javascript
javascript的变量
1.javascript的變量是無類型的(untype)。
2.用var聲明的變量是永久性的。所以當你試圖用delete來刪除其聲明的變量時會報錯。
3.當試圖讀取一個未聲明的變量時,會報錯。
4.當給一個未用var聲明的變量賦值時,js會隱式的聲明該變量(這個變量會被聲明為全局變量,所以最好用var來聲明。這一點在局部聲明時非常重要)。
5.在函數內部,局部變量的優先級要高于同名的全局變量(相當于隱藏了該同名的全局變量)。
結合4,5兩點。我們給出一個列子來說明其重要性。
var part = "global"; //聲明一個全局變量
function checkpart()
{
var part = "local"; //聲明一個局部變量
document.write(part);
}
checkpart(); //輸出local
document.write(part); // 輸出global
當你在聲明part局部變量時省略了var。這就相當于聲明了一個全局變量,即改變了全局變量part的值。下面的兩條語句輸出的都是local。
?
6.沒有塊級作用域。函數中聲明所有變量(無論在哪里聲明的),在整個函數中他都是有定義的。
var part = "global";
function checkvariable()
{
document.write(part);
}
checkvariable(); //輸出global
?
var part = "global";
function checkvariable()
{
documen.write(part);
var part = "local";
document.write(part);
}
checkvariable();
上述代碼第一次輸出的不是global,而是undefined。這告訴我們在函數中聲明變量時盡量將其集中放在函數的開頭。
?
7.變量的內容
js中數據類型分為兩組:基本數據類型和引用類型。數值,布爾值,null和未定義的值屬于基本類型。對象,數組,函數屬于引用類型(函數也是一種數據類型)。(字符串屬于特殊類型)?;緮祿愋驮趦却嬷芯哂泄潭ǖ拇笮?#xff1a;一個數值占8個字節(在基本類型中最大),一個布爾值占一位。而引用類型具有任意長度,沒有固定的大小。無法將其直接與每個相關變量儲存在8個字節的內存中。所以變量儲存的是這個值的引用(通常引用有兩種形式:指針和內存地址)。這兩中數據類型具有很大的差別。
var i = 1;
var j = i;
i = 2;
alert(j); //輸出1
?
var i = new Array(1,2,3);
j = i;
i[0] = 2;
alert(j); //輸出2,2,3
?
?
8.作為屬性的變量
js解釋器在工作之前會在所有js代碼運行之前創建一個全局對象。這個全局對象的屬性就是所有的全局變量。同理也會存在一個調用對象。而這個調用對象的屬性就是所有的局部變量。一個js解釋器可以工作在不同的執行環境中。這些執行環境彼此獨立且又相互聯系。(執行環境:不同的窗口,框架)。
轉載于:https://www.cnblogs.com/chris-oil/archive/2013/05/19/3087425.html
總結
以上是生活随笔為你收集整理的javascript的变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读取 XML 数据时,超出最大字符串内容
- 下一篇: 使用Trello看板管理项目