• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. JavaScript數(shù)據(jù)類型學(xué)習(xí)

        時間:2024-09-07 00:50:27 JavaScript 我要投稿

        JavaScript數(shù)據(jù)類型學(xué)習(xí)

          ECMAscript 中有5種簡單的數(shù)據(jù)類型,也被稱為基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number和String。還有一種復(fù)雜的數(shù)據(jù)類型——Object。

        JavaScript數(shù)據(jù)類型學(xué)習(xí)

          Undefined 類型

          在使用var 聲明變量但未對其進(jìn)行初始化時,這個變量的值就是undefined。如:

          var number;document.write(number); //undefined

          如果沒有聲明變量則會出現(xiàn)下面這種錯誤。如:

          document.write(str); //錯誤

          但是用typeof對其進(jìn)行執(zhí)行時,不管有沒有聲明都會返回undefined 值。如:

          var num;document.write(typeof num); //undefineddocument.write(typeof str); //undefined

          Null 類型

          使用typeof檢測null 時會返回"object"。如:

          var num = null;document.write(typeof num); //object

          實(shí)際上undefined 值是派生自null 值的,因此他們相等都會返回true。如:

          alert(null == undefined); //true

          這里要注意的是,只要意在保存對象的變量還沒有真正保存對象,就應(yīng)該明確地讓該變量保存null 值,此舉有助于區(qū)分null 和 undefined。如:

          var num1 = null;var num2;document.write(typeof num1 + " " + typeof num2); //object undefined

          Boolean 類型

          要將一個值轉(zhuǎn)換為其對應(yīng)的Boolean 值,可以使用轉(zhuǎn)型函數(shù)Boolean()。如:

          var str = "helloworld";document.write(Boolean(str)); //true

          《JavaScript高級編程設(shè)計》一書中的3.4.4中給出了關(guān)于各種數(shù)據(jù)類型及其對應(yīng)的轉(zhuǎn)換規(guī)則表格。大概有以下幾種:

          數(shù)據(jù)類型為String 時,任何非空字符串都會轉(zhuǎn)換為true; 數(shù)據(jù)類型為Number 時,除了0 和NaN 會被轉(zhuǎn)換為false 之外,其他都會轉(zhuǎn)換為true; 數(shù)據(jù)類型為Object 時,除了null 之外,都會轉(zhuǎn)換為true; 數(shù)據(jù)類型為Undefined 時,n/a 會被轉(zhuǎn)換為true,undefined 會被轉(zhuǎn)換為false;

          這里要注意的是,if 語句經(jīng)常使用自動執(zhí)行響應(yīng)的Boolean 轉(zhuǎn)換作為條件。如:

          var str = "helloworld";if (str){ document.write("hellothere");} //hellothere

          Number 類型

          除了可以以十進(jìn)制表示之外,整數(shù)還可以通過八進(jìn)制或者十六進(jìn)制的字面值來表示,其中八進(jìn)制字面值的第一位必須是0,然后是八進(jìn)制數(shù)字序列(0~7)。如:

          var num1 = 070; //八進(jìn)制的56var num2 = 032; //八進(jìn)制的32var num3 = 079; //錯誤的八進(jìn)制(>7)var num4 = 09; //錯誤的八進(jìn)制(>7)

          十六進(jìn)制字面值的前兩位必須是0x,后面跟任何十六進(jìn)制數(shù)(0~9 及 A~F)。如:

          var num1 = 0xA; //十六進(jìn)制的10var num1 = 0xa; //也是十六進(jìn)制的10(字母不區(qū)分大小寫)

          浮點(diǎn)數(shù)值

          這里要注意的是,永遠(yuǎn)不要比較特定的浮點(diǎn)數(shù)值。如:

          var a = 0.1;var b = 0.2;if (a + b == 0.3){ document.write("you are right")} //因為0.1 加上0.2 實(shí)際上等于0.30000000000000004

          數(shù)值范圍

          ECMAScript 能夠表示的最大和最小數(shù)值保存在Number.MAX_VALUE 和Number.MIN_VALUE 之中。要想確定一個數(shù)值是不是有窮的,可以使用isFinite()函數(shù)。如:

          document.write(isFinite(Number.MAX_VALUE + Number.MAX_VALUE)); //false

          NaN

          0 除以0 會返回NaN,正數(shù)除以0 會返回Infinity,復(fù)數(shù)則會返回-Infinity。其次,NaN 與任何數(shù)值都不相等,包括它本身。另外函數(shù)isNaN()可以幫助我們確定這個參數(shù)是否“不是數(shù)值”。如:

          document.write(isNaN("a")); //true;document.write(isNaN("324")); //false;document.write(isNaN(true)); //false;document.write(isNaN(false)); //false;document.write(isNaN(NaN)); //true;

          數(shù)值轉(zhuǎn)換

          有三個函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值:Number()、parseInt()、parseFloat()。

          Number()的轉(zhuǎn)換規(guī)則如下:

          如果是Boolean 值,true 和false 會被轉(zhuǎn)換為1 和0。

          如果是數(shù)字值,則不變。

          如果是null 值,則轉(zhuǎn)換為0。

          如果是undefined,返回NaN。

          如果是字符串則遵循下列規(guī)則:

          如果只有數(shù)字,則轉(zhuǎn)換為十進(jìn)制數(shù)值。 如果是浮點(diǎn)格式,則將其轉(zhuǎn)換成對應(yīng)的浮點(diǎn)數(shù)值。同樣也會忽略前導(dǎo)零。 如果是十六進(jìn)制格式則會轉(zhuǎn)換成十進(jìn)制數(shù)。 如果字符串是空的,則會轉(zhuǎn)換成0。 其他情況則會轉(zhuǎn)換為NaN。

          具體看下面的例子:

          document.write(Number(true)); //1document.write(Number(false)); //0document.write(Number("789")); //789document.write(Number(null)); //0document.write(Number(undefined)); //NaNdocument.write(Number("02.0942")); //2.0942document.write(Number(0xa)); //10document.write(Number("")); //0document.write(Number("fdsa")); //NaN

          parseInt()的轉(zhuǎn)換規(guī)則如下:

          如果第一個字符不是數(shù)字字符或者符號,parseInt()會返回NaN。 用parseInt()轉(zhuǎn)換空字符串會返回NaN。 如果第一個字符是數(shù)字字符,它會繼續(xù)解析第二個字符,直到遇到了一個非數(shù)字字符.

          下面是具體的例子:

          document.write(parseInt("fds")); //NaNdocument.write(parseInt("")); //NaNdocument.write(parseInt("1111112abc")); //1111112document.write(parseInt("-1111112abc")); //-1111112document.write(parseInt("+1111112abc")); //-1111112document.write(parseInt("0xa")); //10document.write(parseInt("0022.00009")); //22document.write(parseInt("070")); //ECMAScript 3認(rèn)為是56(八進(jìn)制), ECMAScript 5認(rèn)為是70(十進(jìn)制)

          另外需要注意的是,ECMAScript 5已經(jīng)不具備解析八進(jìn)制值的能力了所以為了消除這個問題,可以為這個函數(shù)提供第二個參數(shù):轉(zhuǎn)換時使用的基數(shù)(多少進(jìn)制),具體如下:

          document.write(parseInt("070",10)); //70document.write(parseInt("070",8)); //56document.write(parseInt("070",16)); //112

          多數(shù)情況下,最好默認(rèn)設(shè)置成10進(jìn)制。

          parseFloat()的轉(zhuǎn)換規(guī)則如下:

          與parseInt()類似,不同的是字符串第一個小數(shù)點(diǎn)是有效的,而從第二個小數(shù)點(diǎn)開始包括第二個小數(shù)點(diǎn)是無效的。 他不能解析十六進(jìn)制數(shù)值!!! 他只能解析十進(jìn)制數(shù)值!!! 他沒有用第二個基數(shù)來指定進(jìn)制的用法。

          下面是具體的例子:

          document.write(parseFloat("421")); //421document.write(parseFloat("0421.32.1")); //421.32document.write(parseFloat("0xaafd")); //0document.write(parseFloat("070")); //70document.write(parseFloat("070abc")); //70document.write(parseFloat("")); //NaNdocument.write(parseFloat("abc")); //NaN

          String 類型

          要把一個值轉(zhuǎn)換成字符串有兩種方式。第一種是使用幾乎每個值都有的toString()方法。如下:

          document.write((533).toString(10)); //"533"document.write((0xa).toString(10)); //"10"document.write((0xa).toString(2)); //"1010"document.write((true).toString(10)); //"true"document.write((false).toString(10)); //"false"

          另外需要注意的是,null 和 undefined 不能轉(zhuǎn)換。

          document.write((null).toString(10)); //document.write((undefined).toString(10)); //

          如果不知道需要轉(zhuǎn)換的數(shù)值是否是null 或者undefined 則應(yīng)該使用轉(zhuǎn)型函數(shù)String(),如果是null 會返回"null"如果是undefined 會返回"undefined"。如下:

          document.write(String(null)); //"null"document.write(String(undefined)); //"undefined"

          另外在下一篇文章中再詳細(xì)介紹Object 類型。

          以上就是關(guān)于JavaScript數(shù)據(jù)類型的簡單介紹,希望對大家學(xué)習(xí)JavaScript數(shù)據(jù)類型有所幫助。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【JavaScript數(shù)據(jù)類型學(xué)習(xí)】相關(guān)文章:

        關(guān)于數(shù)據(jù)類型的Javascript學(xué)習(xí)筆記08-05

        JavaScript學(xué)習(xí)筆記08-24

        JavaScript學(xué)習(xí)歷程和心得范文(精選10篇)02-13

        對javascript的理解08-08

        SQL Server常用數(shù)據(jù)類型06-18

        整理Javascript基礎(chǔ)語法學(xué)習(xí)筆記欣賞08-04

        常用的JavaScript模式09-22

        Javascript的this用法簡述08-15

        JavaScript 基礎(chǔ)教學(xué)09-29

        JavaScript的課堂講解09-03

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲免费福利在线视频 | 亚洲国产精品自产在线播放 | 伊人成人久久精品综合 | 亚洲精品福利在线观看AV | 中文字幕一区二区三区免 | 亚洲国产精品va在线观看香蕉 |

            JavaScript數(shù)據(jù)類型學(xué)習(xí)

              ECMAscript 中有5種簡單的數(shù)據(jù)類型,也被稱為基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number和String。還有一種復(fù)雜的數(shù)據(jù)類型——Object。

            JavaScript數(shù)據(jù)類型學(xué)習(xí)

              Undefined 類型

              在使用var 聲明變量但未對其進(jìn)行初始化時,這個變量的值就是undefined。如:

              var number;document.write(number); //undefined

              如果沒有聲明變量則會出現(xiàn)下面這種錯誤。如:

              document.write(str); //錯誤

              但是用typeof對其進(jìn)行執(zhí)行時,不管有沒有聲明都會返回undefined 值。如:

              var num;document.write(typeof num); //undefineddocument.write(typeof str); //undefined

              Null 類型

              使用typeof檢測null 時會返回"object"。如:

              var num = null;document.write(typeof num); //object

              實(shí)際上undefined 值是派生自null 值的,因此他們相等都會返回true。如:

              alert(null == undefined); //true

              這里要注意的是,只要意在保存對象的變量還沒有真正保存對象,就應(yīng)該明確地讓該變量保存null 值,此舉有助于區(qū)分null 和 undefined。如:

              var num1 = null;var num2;document.write(typeof num1 + " " + typeof num2); //object undefined

              Boolean 類型

              要將一個值轉(zhuǎn)換為其對應(yīng)的Boolean 值,可以使用轉(zhuǎn)型函數(shù)Boolean()。如:

              var str = "helloworld";document.write(Boolean(str)); //true

              《JavaScript高級編程設(shè)計》一書中的3.4.4中給出了關(guān)于各種數(shù)據(jù)類型及其對應(yīng)的轉(zhuǎn)換規(guī)則表格。大概有以下幾種:

              數(shù)據(jù)類型為String 時,任何非空字符串都會轉(zhuǎn)換為true; 數(shù)據(jù)類型為Number 時,除了0 和NaN 會被轉(zhuǎn)換為false 之外,其他都會轉(zhuǎn)換為true; 數(shù)據(jù)類型為Object 時,除了null 之外,都會轉(zhuǎn)換為true; 數(shù)據(jù)類型為Undefined 時,n/a 會被轉(zhuǎn)換為true,undefined 會被轉(zhuǎn)換為false;

              這里要注意的是,if 語句經(jīng)常使用自動執(zhí)行響應(yīng)的Boolean 轉(zhuǎn)換作為條件。如:

              var str = "helloworld";if (str){ document.write("hellothere");} //hellothere

              Number 類型

              除了可以以十進(jìn)制表示之外,整數(shù)還可以通過八進(jìn)制或者十六進(jìn)制的字面值來表示,其中八進(jìn)制字面值的第一位必須是0,然后是八進(jìn)制數(shù)字序列(0~7)。如:

              var num1 = 070; //八進(jìn)制的56var num2 = 032; //八進(jìn)制的32var num3 = 079; //錯誤的八進(jìn)制(>7)var num4 = 09; //錯誤的八進(jìn)制(>7)

              十六進(jìn)制字面值的前兩位必須是0x,后面跟任何十六進(jìn)制數(shù)(0~9 及 A~F)。如:

              var num1 = 0xA; //十六進(jìn)制的10var num1 = 0xa; //也是十六進(jìn)制的10(字母不區(qū)分大小寫)

              浮點(diǎn)數(shù)值

              這里要注意的是,永遠(yuǎn)不要比較特定的浮點(diǎn)數(shù)值。如:

              var a = 0.1;var b = 0.2;if (a + b == 0.3){ document.write("you are right")} //因為0.1 加上0.2 實(shí)際上等于0.30000000000000004

              數(shù)值范圍

              ECMAScript 能夠表示的最大和最小數(shù)值保存在Number.MAX_VALUE 和Number.MIN_VALUE 之中。要想確定一個數(shù)值是不是有窮的,可以使用isFinite()函數(shù)。如:

              document.write(isFinite(Number.MAX_VALUE + Number.MAX_VALUE)); //false

              NaN

              0 除以0 會返回NaN,正數(shù)除以0 會返回Infinity,復(fù)數(shù)則會返回-Infinity。其次,NaN 與任何數(shù)值都不相等,包括它本身。另外函數(shù)isNaN()可以幫助我們確定這個參數(shù)是否“不是數(shù)值”。如:

              document.write(isNaN("a")); //true;document.write(isNaN("324")); //false;document.write(isNaN(true)); //false;document.write(isNaN(false)); //false;document.write(isNaN(NaN)); //true;

              數(shù)值轉(zhuǎn)換

              有三個函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值:Number()、parseInt()、parseFloat()。

              Number()的轉(zhuǎn)換規(guī)則如下:

              如果是Boolean 值,true 和false 會被轉(zhuǎn)換為1 和0。

              如果是數(shù)字值,則不變。

              如果是null 值,則轉(zhuǎn)換為0。

              如果是undefined,返回NaN。

              如果是字符串則遵循下列規(guī)則:

              如果只有數(shù)字,則轉(zhuǎn)換為十進(jìn)制數(shù)值。 如果是浮點(diǎn)格式,則將其轉(zhuǎn)換成對應(yīng)的浮點(diǎn)數(shù)值。同樣也會忽略前導(dǎo)零。 如果是十六進(jìn)制格式則會轉(zhuǎn)換成十進(jìn)制數(shù)。 如果字符串是空的,則會轉(zhuǎn)換成0。 其他情況則會轉(zhuǎn)換為NaN。

              具體看下面的例子:

              document.write(Number(true)); //1document.write(Number(false)); //0document.write(Number("789")); //789document.write(Number(null)); //0document.write(Number(undefined)); //NaNdocument.write(Number("02.0942")); //2.0942document.write(Number(0xa)); //10document.write(Number("")); //0document.write(Number("fdsa")); //NaN

              parseInt()的轉(zhuǎn)換規(guī)則如下:

              如果第一個字符不是數(shù)字字符或者符號,parseInt()會返回NaN。 用parseInt()轉(zhuǎn)換空字符串會返回NaN。 如果第一個字符是數(shù)字字符,它會繼續(xù)解析第二個字符,直到遇到了一個非數(shù)字字符.

              下面是具體的例子:

              document.write(parseInt("fds")); //NaNdocument.write(parseInt("")); //NaNdocument.write(parseInt("1111112abc")); //1111112document.write(parseInt("-1111112abc")); //-1111112document.write(parseInt("+1111112abc")); //-1111112document.write(parseInt("0xa")); //10document.write(parseInt("0022.00009")); //22document.write(parseInt("070")); //ECMAScript 3認(rèn)為是56(八進(jìn)制), ECMAScript 5認(rèn)為是70(十進(jìn)制)

              另外需要注意的是,ECMAScript 5已經(jīng)不具備解析八進(jìn)制值的能力了所以為了消除這個問題,可以為這個函數(shù)提供第二個參數(shù):轉(zhuǎn)換時使用的基數(shù)(多少進(jìn)制),具體如下:

              document.write(parseInt("070",10)); //70document.write(parseInt("070",8)); //56document.write(parseInt("070",16)); //112

              多數(shù)情況下,最好默認(rèn)設(shè)置成10進(jìn)制。

              parseFloat()的轉(zhuǎn)換規(guī)則如下:

              與parseInt()類似,不同的是字符串第一個小數(shù)點(diǎn)是有效的,而從第二個小數(shù)點(diǎn)開始包括第二個小數(shù)點(diǎn)是無效的。 他不能解析十六進(jìn)制數(shù)值!!! 他只能解析十進(jìn)制數(shù)值!!! 他沒有用第二個基數(shù)來指定進(jìn)制的用法。

              下面是具體的例子:

              document.write(parseFloat("421")); //421document.write(parseFloat("0421.32.1")); //421.32document.write(parseFloat("0xaafd")); //0document.write(parseFloat("070")); //70document.write(parseFloat("070abc")); //70document.write(parseFloat("")); //NaNdocument.write(parseFloat("abc")); //NaN

              String 類型

              要把一個值轉(zhuǎn)換成字符串有兩種方式。第一種是使用幾乎每個值都有的toString()方法。如下:

              document.write((533).toString(10)); //"533"document.write((0xa).toString(10)); //"10"document.write((0xa).toString(2)); //"1010"document.write((true).toString(10)); //"true"document.write((false).toString(10)); //"false"

              另外需要注意的是,null 和 undefined 不能轉(zhuǎn)換。

              document.write((null).toString(10)); //document.write((undefined).toString(10)); //

              如果不知道需要轉(zhuǎn)換的數(shù)值是否是null 或者undefined 則應(yīng)該使用轉(zhuǎn)型函數(shù)String(),如果是null 會返回"null"如果是undefined 會返回"undefined"。如下:

              document.write(String(null)); //"null"document.write(String(undefined)); //"undefined"

              另外在下一篇文章中再詳細(xì)介紹Object 類型。

              以上就是關(guān)于JavaScript數(shù)據(jù)類型的簡單介紹,希望對大家學(xué)習(xí)JavaScript數(shù)據(jù)類型有所幫助。