激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

JavaScript數據類(lèi)型學(xué)習

時(shí)間:2024-09-07 00:50:27 JavaScript 我要投稿

JavaScript數據類(lèi)型學(xué)習

  ECMAscript 中有5種簡(jiǎn)單的數據類(lèi)型,也被稱(chēng)為基本數據類(lèi)型:Undefined、Null、Boolean、Number和String。還有一種復雜的數據類(lèi)型——Object。

JavaScript數據類(lèi)型學(xué)習

  Undefined 類(lèi)型

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

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

  如果沒(méi)有聲明變量則會(huì )出現下面這種錯誤。如:

  document.write(str); //錯誤

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

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

  Null 類(lèi)型

  使用typeof檢測null 時(shí)會(huì )返回"object"。如:

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

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

  alert(null == undefined); //true

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

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

  Boolean 類(lèi)型

  要將一個(gè)值轉換為其對應的Boolean 值,可以使用轉型函數Boolean()。如:

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

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

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

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

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

  Number 類(lèi)型

  除了可以以十進(jìn)制表示之外,整數還可以通過(guò)八進(jìn)制或者十六進(jìn)制的字面值來(lái)表示,其中八進(jìn)制字面值的第一位必須是0,然后是八進(jìn)制數字序列(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)制數(0~9 及 A~F)。如:

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

  浮點(diǎn)數值

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

  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

  數值范圍

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

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

  NaN

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

  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;

  數值轉換

  有三個(gè)函數可以把非數值轉換為數值:Number()、parseInt()、parseFloat()。

  Number()的轉換規則如下:

  如果是Boolean 值,true 和false 會(huì )被轉換為1 和0。

  如果是數字值,則不變。

  如果是null 值,則轉換為0。

  如果是undefined,返回NaN。

  如果是字符串則遵循下列規則:

  如果只有數字,則轉換為十進(jìn)制數值。 如果是浮點(diǎn)格式,則將其轉換成對應的浮點(diǎn)數值。同樣也會(huì )忽略前導零。 如果是十六進(jìn)制格式則會(huì )轉換成十進(jìn)制數。 如果字符串是空的,則會(huì )轉換成0。 其他情況則會(huì )轉換為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()的轉換規則如下:

  如果第一個(gè)字符不是數字字符或者符號,parseInt()會(huì )返回NaN。 用parseInt()轉換空字符串會(huì )返回NaN。 如果第一個(gè)字符是數字字符,它會(huì )繼續解析第二個(gè)字符,直到遇到了一個(gè)非數字字符.

  下面是具體的例子:

  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認為是56(八進(jìn)制), ECMAScript 5認為是70(十進(jìn)制)

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

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

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

  parseFloat()的轉換規則如下:

  與parseInt()類(lèi)似,不同的是字符串第一個(gè)小數點(diǎn)是有效的,而從第二個(gè)小數點(diǎn)開(kāi)始包括第二個(gè)小數點(diǎn)是無(wú)效的。 他不能解析十六進(jìn)制數值。! 他只能解析十進(jìn)制數值。! 他沒(méi)有用第二個(gè)基數來(lái)指定進(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 類(lèi)型

  要把一個(gè)值轉換成字符串有兩種方式。第一種是使用幾乎每個(gè)值都有的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 不能轉換。

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

  如果不知道需要轉換的數值是否是null 或者undefined 則應該使用轉型函數String(),如果是null 會(huì )返回"null"如果是undefined 會(huì )返回"undefined"。如下:

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

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

  以上就是關(guān)于JavaScript數據類(lèi)型的簡(jiǎn)單介紹,希望對大家學(xué)習JavaScript數據類(lèi)型有所幫助。

【JavaScript數據類(lèi)型學(xué)習】相關(guān)文章:

關(guān)于數據類(lèi)型的Javascript學(xué)習筆記08-05

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

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

對javascript的理解08-08

SQL Server常用數據類(lèi)型06-18

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

常用的JavaScript模式09-22

Javascript的this用法簡(jiǎn)述08-15

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

JavaScript的課堂講解09-03

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频