javascript 資料類型和值(基礎版)

來源:互聯網
上載者:User

  javascript允許使用3種基礎資料型別 (Elementary Data Type)-數字、文本字元和布爾值。此外,它還支援2種小資料類型null(空)和underfined,它們各只定義了一個值。除了這些基本的資料類型外,javascript還支援符合資料類型-對象(object)。javascript還定義了另外一種特殊的對象-函數(function)。除了函數和數組外,javascript語言核心還定義了其他一些專用的對象。這些對象表示不是新的資料類型,而是對象的新的類(class)。Date類定義的是表示日期的對象,RegExp類類定義的是表示正則的運算式對象,Error類定義的是表示javascript程式中發生的語法錯誤對象。

  數字

  javascript的數字類型不區別整形數值和浮點型資料。(64位浮點數)

  6.02e23 //6.02*10的23次方

  1.4738E-32 //1.4738223*10的負32次方

  javascript是使用語言自身提供的算術運算子來進行數字運算的。這些運算包括(+、-、*、/)

  javascript還使用了一些特殊的數值

    Infinity 表示無窮大的特殊值

    NaN 特殊的非數字值

    Number.Max_VALUE 表示最大的數字

    Number.Min_VALUE  表示最小的數字

    Number.NaN 特殊的非數字值

    Number.POSITIVE_INFINITY 表示正無窮大的特殊值

    Number.NEGATIVE_INFINITY 表示負無窮大的特殊值

  字串

  字串(sting)就是由單引號或雙引號括起來的Unicode字元序列,其中含有0個或多個Unicode字元。由單引號定界的字串中可以含有雙引號,由雙引號定界的字串中也可以含有單引號。(如果需要在字串中添加分行符號,可以使用/n)

 

   <a href="contact.html" onclick="alert('test')">1</a>   <a href="contact.html" onclick='alert("test")'>2</a>

 

msg="Hello",+"world";//"Hello,world"

  要確定一個字串的長度,s.length

  要擷取字串最後一個字元。last_char=s.charAt(s.length-1)

  可以從字串中抽出第二、三、四個字元。sub=s.substing(1,4)

  要從字串中尋找第一個字母“a”的位置 i=s.indexOf('a');

把數字轉換為字串

  如果一個數字用在一字串串連運算式中,數字就會轉換成字串:var n=100;var s =n+"";

  或者var string_value=string(number);  string_value.toSting();

  var n=17

  binary_string =n.toSring(2);//2進位 10001

  octal_string =n.toSring(8);//8進位 021

  hex_string =n.toSring(16);//16進位 0x11

  toFixed()把一個數字轉化為字串,並且顯示小數點後的指定位元。toExponential()使用指數的方法把一個數字轉化為字串。toPrecision()使用指定的有意義的位元來顯示儀個數字,如果有意義的位元還不夠顯示整個整數部分,它就使用指數的表示方法(這3個方法都會四捨五入)

  var n=123456.789

  n.toFixed(0); //123456.789

  n.toFixed(2); //123456.79

  n.toExponential(1);//1.2e+5

  n.toExponential(3);//1.235e+5

  n.toPrecision(4);//1.235e+5

  n.toPrecision(7);//123456.8

把字串轉換為數字

  當一個字串用於數字環境中,它也會自動轉換為一個數字。  var product="21"*"2";

  利用這一優點,我們只要把一個字串減去0就可以將其轉換為一個數字  var number ="21"-0;

  var number =Number("21");這種方法麻煩之處它過於嚴格。它只對10為基數的數字有效,在緊隨數位字串中,它不允許出現任何非Null 字元。要允許更多靈活的轉化,可以使用parseInt()和parseFloat()。parseInt()只截取整數。而parseFloat()截取整數和浮點數

  parseInt("3 is int "); //3

  parseInt("12.34 is int "); //12

  parseInt("0xff"); //255

  parseFloat("3.14 is float") // 3.14

  parseInt("11",2); //3 parseInt()還可以指定多一個參數來解析數位基數

但parseInt()和parseFloat()不能把指定的字串轉換為數字,它就會返回NaN

  parseInt("one"); //NaN

  parseFloat("$72.47"); //NaN

  布爾值

  布爾值資料就只有2個值,這2個合法的值分別由直接量true和false表示。

  布爾值很容易轉換,如果一個布爾值用在數值環境中,true就轉換為1,而false就會轉換為數字0,如果在字串環境中,true就轉換為字串“true”,而false就轉換為字串“false”。如果一個數字用在一本該布爾值的地方,那麼這個數字是0或NaN,它就會轉換為false,否則就會為true.如果字串用在用布爾值的地方,那麼Null 字元串就轉化為false,否則就轉換為true。空值或未定義的值也會轉換為false,而任何的非Null 物件,數組或函數都轉換為true。

  var x=Boolern(x);

  var x= !!1;

  函數

  函數(function)是一個可執行檔javascript程式碼片段,由javascript程式定義或由javascript實現預定義。雖然函數只定義一次,但是javascript程式卻可以多次執行或調用它。javascript的函數可以帶有實質參數或形式參數,用於指定這個函數執行計算要使用一個或多個值,而且它還能返回一個值。

  javascript可以定義和調用函數,代碼如下

 

        function sum(x) {            return x + x;        }        alert(sum(2).toString());

 

  在很多的語言中,函數只是語言的文法特性,它可以被定義,被調用,但是不是資料類型。但javascript中的函數式真正的數值,這一點給語言帶來了很大的靈活性。這意味值函數可以被儲存在變數、數組和對象中,而且函數還可以作為參數傳遞給其他函數。這是非常有用的

  函數直接量是使用關鍵字function後加可選的函數名、用括弧括起來的函數體定義的。

 

        var sum = function (x) { return x + x };        alert(sum(1).toString());

   對象

  對象object是已命名資料的集合。這些已命名的資料通常被作為對象屬性來引用。要引用一個對象的屬性,就必須引用這個對象,在其後加實心點和屬性名稱。如document.write("this a test!");或者document.body.firstChild

  建立對象,對象是通過調用特殊的特殊的建構函式建立的。

  var o =new Object();

  var now =new Date();

  var pattern =new RegExp("\sjava\\s","i");

  一旦建立了屬於自己的對象,那麼就可以根據自己的意願設計並使用它的屬性了:

  var point= new object()

  point.x =2.3;

  pont.y =1.2;

  javascript定義了對象直接量的文法,從而能夠建立對象並定義它的屬性。

  var pont={x:2.3,y:-1.2}

  對象直接量也可以嵌套;

  var aaa={bbb:{x:2,y:2},ccc:{x:4,y:4}};

  最後要說明的是,對象直接量中使用的屬性值不必是常量,它可以是任意的javascript運算式。另外,對象直接量中的屬性名稱可以是字串而不是標識符: 

        var user = { "username": "andy",
            "age": 20,
            "info": { "tel": "123456", "cellphone": "98765" },
            "address":
            [
                { "city": "beijing", "postcode": "222333" },
                { "city": "newyork", "postcode": "555666" }
            ]

        }

   這不是Jason嗎

   數組

  數組(array)和對象一樣是數值的集合。所不同的是,對象中的每個數值都有一個名字,而數組的沒一個數字,或者是下標(index)。

  document.images[1].width

  要注意,javascript並不支援多維陣列,不過它的數組元素還可以是數組。由於javascript是以中非類型語言,因此數組元素不必具有相同的類型。

  可以是用建構函式Array()來建立數組。一旦建立了數組,就可以輕鬆地給數組任何元素賦值:

  var a =new Array();

  a[0]=1.2;

   a[1]="Javascript"

  a[2]=true;

  a[3]={x:1,y:3}

  數組直接量是在一個封閉方括弧中的序列,序列中的元素由逗號分隔。括弧內的值將被依次賦值給數組元素,下標值從0開始。

  var a=[1.2 ,"Javascript",true,{x:1,y:3}];

  與對象直接量一樣,數組也可以被嵌套:

  var martrix =[[1,2,3],[4,5,6],[7,8,9]];

  而且與對象相同,數組元素中的元素不必僅限於常量,它可以是任意運算式

  var base=1024;

  var table =[base,base+1,base+2,base+3];

  數組直接量中還可以存放沒定義元素,只要在逗號之間去掉該元素的值就可以

  var a=[1.2 ,,,{x:1,y:3}];//有2個元素沒定義的;

  null

  javascript的關鍵字null是一個特殊的值,它表示“無值”。null常常被看做物件類型的一個特殊值,代表“無對象”的值。null是一個獨一無二的值,有別於其他所有的值。如果一個變數的值為null,那麼就說明它的值不是有效對象、數組、數字、字串和布爾值。當null用於布爾環境,它轉換為false。當它用於數字環境,它轉換為0.當它用於一個字串環境,它轉換為“null”.

  underfined

  在使用一個並沒聲明的變數時,或者使用已經聲明但沒賦值的變數時,又或者使用一個並不存在的對象屬性時,返回underfined。雖然underfined和null值不同,但是==運算卻將兩者相等。

  當沒定義的值用於布爾環境,它會轉換為false:用於一個數字環境,它會轉換為NaN。當用於字串環境,它會轉換為“undefined”。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.