由淺入深JavaScript——變量和原始類型

JavaScript變量

JavaScript變量標識符
標識符 var + 變量名稱來定義變量。
變量名稱以字母,下劃線_,美元$符號開頭,餘下字符可以是字母,數字,下劃線,美元符號。
eg: var  name = 'hello';
    var  a1 = 'hello';
    var  _test = 'hello';
    var  $test = 'hello';
    以上變量名稱均爲正確。
    var  1a = 'hello'; //數字開頭錯誤。    
JavaScript允許一次聲明多個變量。中間以逗號分隔。
eg: var a1 = 'hello1',a2 = 'hello2';

JavaScript大小寫敏感。
var a = 'hello1';
var A = 'hello2';
a和A是兩個不同的變量
function name(){}
function Name(){}
函數 name和Name是兩個不同的函數。
    
JavaScript是弱類型語言。
所謂弱類型語言即變量沒有固定類型,也無需明確類型。
相比於Java語言,定義一個變量必須要聲明其類型。
Java代碼
eg: String str = 'hello';
     int  num =  19;
JavaScript代碼
eg: var str = 'hello';
     var num = 19;
JavaScript中的變量類型是根據其內容改變而改變的。
如上,變量str 就是一個字符串類型的變量,變量num是一個數字類型的變量。
這即是弱類型帶來的編程簡便好處,但同時也對初學者容易造成混淆。

變量的作用域
變量按照作用域劃分爲全局變量和局部變量。其區別在於生命週期。
局部變量一般聲明在函數內部,其使用範圍也是在其聲明的地方開始
到其所在的函數代碼塊結束。函數結束,其內部的局部變量註銷。
全局變量聲明在函數外部,其使用範圍從其生命的地方開始</script>
標籤結束,瀏覽器關閉,全局變量註銷。
eg1:
        <script>
            var a ;//全局變量a,任何地方都可以使用
            function test1(){
                var a = 12;//局部變量a
                          //只能在聲明他的地方開始到代碼塊結束之間使用。即test1中
            }
            function test2(){
                alert(a); //全局變量a
            }
        </script>

除此以外對於沒有聲明過得變量在使用後,其將成爲全局變量。        
eg2:
        <script>
        var  aaa = 111;
            qqq = aaa+222;
            function test(){
                alert(qqq);
            }
            test();
        </script>
聲明 變量 aaa , 變量aaa + 222賦值給 從未聲明過的變量qqq,    
發現qqq如正常變零可以使用並且qqq可以在函數內部使用,
可見其爲全局變量。

JavaScript原始值數據類型
在JavaScript中數據類分爲兩大類——原始值類型和引用值類型。
原始值數據類型與引用值數據類型其最大的區別在於存儲結構。
原始值類型存儲在棧中,其值直接存在變量訪問的地方。
引用值類型存儲在堆中,存儲在變零訪問出的是一個地址,指向內存裏的一小塊空間。
原始值類型中有5中數據類型。
    Null,Undefined,string,Boolean,number
引用值類型中只用1種數據類型
    Object
    萬物皆爲對象,function,array,RegExp……

原始數據類型詳解
    在詳解原始值數據類型之前先介紹運算一種特殊的運算符——typeof
    typeof用來判斷變量的數據類型。
    alert()函數,在瀏覽器中彈出,多用在js調試錯誤。

字符串類型——String
    字符串由單引號或雙引號引起來。
    字符串每個字符都有其特定的位置,第一個字符index是0。
eg:
        <script>
            var str  = 'hello';
            alert(typeof str);//string
            alert(str.length);//5
            alert(str.charAt(0));//h
        </script>
    
數字類型——Number
    可以表示32位的整數,也可以表示64位的浮點數。
    可以表示爲八進制必須0開頭,也可以表示爲十六進制0開頭,後面接x字母。
    科學計數法表示數字。
    eg1:
            var num1 = 12;
            var num2 = 12.01;
            alert(typeof num1);//Number
            alert(typeof num2);//Number
    eg2:
            var num1 = 030 //等於十進制的24
            var num2 = 0x1a //等於十進制的26
    eg3:
            var num1 = 2.13e6 //2.13*10的六次方。
布爾類型——Boolean
    表示邏輯真與假。
    定義時不可加引號。
    true和false其值可以與0,1相等價。
eg:
        <script>
            var a = true;
            alert(typeof a) //boolean
            alert(a==1); //true
            alert(a==0); //false
            var a = 1;
            alert(typeof a);//number
            alert(a==true); //true
            var b = 1;
            alert(a==b) //true
        </script>

Undefined類型
    Undefined即未定義類型。其默認值爲Undefined。
    對於不存在的變量或者變量未賦初始值都爲Undefined類型。
    Undefined類型的默認值爲Undefined,但值Undefined不同於未定義的值。
eg:
        <script>
            var a ; //變量a沒有賦初始值,
            alert(typeof a);//類型爲Undefined,
            alert(a==undefined);//值爲undefined
            alert(typeof c); //未定義的值c。
            alert(c==a); //出錯,對c使用除typeof運算符的其它運算符都會出現錯誤
                //因爲無法對一個不存在的變量進行運算
        </script>
Null類型
        表示空值,其默認值即null。
        Null和Undefined  
            Undefined是從null中派生出來的。
        Null的小問題 Null的typeof 是Object
            在前面我們說Null爲原始值類型,引用值類型纔是對象。
            但是null的typeof爲object是由於歷史原因所出現的bug,後來解釋null
            爲對象的佔位符。
eg:
    
        <script>
            var a = null//變量a 有值,值爲null
            alert(typeof a); //object
            var b  //變量b沒有值 nudefined
            alert(a==b);//true
        </script>

    
引用數據類型
    引用數據類型只有一種即——對象。
    借用java中的一句話,萬物皆爲對象,本節課暫不討論對象,
    我們在後面的課程將會詳細介紹。引用類型。

變量命名規範
    在前文中我們的變量名稱一直是隨意起名,爲了編程規範,我們的
    變量名稱應當有意義。
    以下介紹三種常見的命名規範。
    駝峯命名法
        首字母小寫,接下來的字母都大寫字符開頭
        var myName = 'hello';
    Pascal標記法
        首字母大寫,接下來的字母都大寫字符開頭
        var MyName = 'hello';
    匈牙利命名法
        前綴+接下來字母都大寫字符開頭
        var sMyName = 'hello';
我們以後的課程將採用駝峯命名規範。
    同時在命名的時候應當注意避免使用JavaScript保留字和關鍵字。
    保留字和關鍵字爲JavaScript語言使用。
    以下附部分保留字和關鍵字。
    保留字:float
            goto
            implements
            import
            native
            package
            private
            protected
                ……
    關鍵字:
            JavaScript關鍵字是保留的,不能用作變量名稱或函數名稱
            var
            in
            if
            break
            do
            for
        如果把關鍵字用作變量名或函數名,
        可能得到諸如 "Identifier Expected"(應該有標識符、期望標識符)
        這樣的錯誤消息


限於文章篇幅原因,這裏僅僅介紹冰山一角。由於筆者的水平有限,編寫時間也很倉促,
文中難免會出現一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正


說在最後的話:

本博會開一個JS專欄,長期更新,由淺入深帶大家系統的學習JavaScript,做出多彩的JS特效。

如果對你有用就關注一下吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章