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

來源:互聯網
上載者:User

標籤:javascript   js   變數   原始類型   js命名   

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特效。

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

本文出自 “心有猛虎,細嗅薔薇” 部落格,請務必保留此出處http://zhangdongxu.blog.51cto.com/12029530/1955945

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.