歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

JavaScript基本類型及類型轉換

  每種語言都有自己的基本類型,JavaScript也不例外。在JavaScript中有五大基本類型,分別是number,string,boolean,null,undefined。其他不屬於這五種基本類型的都是對象,有時候null也h是對象的一種。

  一、基本類型介紹

  可以通過typeof來確定是哪種類型。

  number包括基本的數字,Infinity,unInfinity,NaN。其中NaN比較特殊,在一個不能做運算的時候做了運算就會得到NaN的結果,例如1*'abc'。

  string幾乎所有的語言都有的類型,但是實現都不一樣。

  boolean也是很常見的一種基本類型,只有兩個值true和false。

  null其實就是空

  undefined指的是未定義的

  二、類型轉換

  任何語言都可以進行類型轉換。javascript特殊的一點是她回自動做一些類型轉換,這樣做的好處是開發者不用做一些強制的類型轉換,但是這個特性也是被視為javascript诟病之一,很多人認為這個特性會造成一些意想不到的錯誤。當然我覺得只要掌握好類型轉換的特點和細節,就能夠趨利避害。

  說幾點在類型轉換中容易出錯的地方。

  在做+操作時一定要注意,因為在javascript中,+既可以是數字的加法,也可以是字符串的拼接。當兩個操作數之一是字符串是就會將另一個數字轉換為字符串,再做字符串的拼接,例如1+'12'和'1'+12得到的都是字符串'112'。所以如果想要做數字的加法,一定要保證兩個操作數都是數字,可以用Number進行強制類型轉換,例如1+Number('12')。當然也可以用一些簡單地轉換例如1+1*'12'。但是不推薦這二種做法,因為語義不明確,會給閱讀代碼的人造成困惑或誤解。

  任何變量都可以轉換為Boolean值,不是true就是false。常見的空字符串'',undefined,null,NaN,0都可以被轉換為false。其他的則都是true。

  我們在定義變量時,經常會這麼做var a = a || 10。我們想做的是,如果a被定義了則使用a的值,沒定義則賦值為10.但是經常忽略,如果a的值為0。所以這種定義方法一定要慎用。

  在javascript中做等比較時有兩種做法,一個是==另一個是===,對應的不等比較是!=和!==。===被稱作是嚴格相等。兩者的區別是,==會做類型轉換而===不會,例如1=='1',1==true都會返回true,而1==='1',1===true則會返回false。所以在做等比較時也一定要慎重。

  三、總結

  作為一門弱類型語言,javascript的類型轉換一方面給開發者帶來了很多方便而受人們追捧,另一方面也會產生一些莫名其妙的錯誤而遭人謾罵。其實我覺得任何語言都是不完美的,而我們能做的就是真正精通這些可能產生誤區的特性,趨利避害才是王道。

大話設計模式(帶目錄完整版) PDF+源代碼  http://www.linuxidc.com/Linux/2014-08/105152.htm

JavaScript設計模式 中文清晰掃描版PDF  http://www.linuxidc.com/Linux/2015-09/122725.htm

Copyright © Linux教程網 All Rights Reserved