JavaScript中的數據類型總結

Javascript是一種弱類型語言,沒有明確的類型分類;網上分類的方式比較多,我的感受不比去特別的追究細分是什麼什麼類型,如果可以明確的分出類型的話,javascript就不是弱類型語言,又因爲你們所使用的主體語言概念不徹底相同(像C#,PHP,C語言等),分類的時候就會根絕本身的主體語言的習慣來分類,不管怎樣分類只要有助於本身的理解,可以方便,正確靈活的使用就能夠了;下面是兩是種常見的分類方式和一些必須瞭解的基礎用法知識;javascript

1、第一種分類方式,也是比較常見的一種分類方法:java

分爲9種類型:分別是Undefined,Boolean,Object,Number,Null,String,Reference,List,Completion,其中Reference,List,Completion三種類型僅共語言解析運行時使用,沒法從程序中直接訪問;下面一一介紹;函數

一、Undefined 類型:是全局對象window的一個特殊屬性,顧名思義就是未定義的意思;Undefined類型只有一個值Undefined,表示一個變量定義了但未賦值;spa

如:var a;  alert(a); // 彈出undefined;code

下面是幾種常見的會出現undefined的狀況:對象

(1)獲取一個對象的屬性(本來屬性和protoType擴展的屬性)不存在時,返回undefined;blog

(2)當一個函數function(){}沒有明確的返回值時,顯示undefined,例子:function way(){}  alert(way());//彈出undefined;ip

(3)javascript中的參數有多個形參的話,若果調用參數的話,參數數量小於形參數量,那麼其餘的參數值就爲undefined;ci

二、Null類型:null是javascript保留的關鍵字,null類型也只有一個null值,表示爲空或者不存在的對象引用;字符串

(1)javascript中的if()判斷語句不管是null類型仍是undefined類型他們的返回值都是false,也就是說一個變量如果null 或者undefined那麼他就爲false;

if (null){
   alert("sdf");//進入不了
  }
if (undefined){
   alert("sdfsdf");//進入不了
  }
var a=12;
if (a){
    alert("sdf");  //能進入
}

三、Number類型:表示數值,包含了全部的數值類型,不像高級語言那麼細分紅int,double,deciable,他的取值範圍是:1.7976931348623157E+308到-1.7976931348623157E+308之間,就是1.7976931348623157*10的308次方到-1.7976931348623157*10的308次方之間;Number類型有一個特殊的值NaN,他是Number類型中一個非數值的值,就像無窮大,因此NaN不等於NaN;

四、Object類型:用來表示一個對象,像String, Array,new 一個對象等,當這個對象爲空時,就是null了;因此alert( typeof(null))的彈出值爲object;

五、String類型:string類型是javascript中的一個比較重要的類型,它用來表示一個字符串,咱們在寫腳本的時候須要處理不少的字符串,因此javascript庫中也提供了不少字符串處理方法,網上已有不少資料了,這裏就不一一細說了;

六、Boolean類型:布爾類型你們都很熟悉,這裏說幾個他的特殊用法:(1)boolea類型和Number類型相結合時,true轉化爲1,false轉化爲0;

var a = true;
        alert(a+1);//彈出2
var a = true;
        alert(a);//彈出true

上述六種類型也能夠相互轉化,基本上是數值和字符串和布爾值之間的轉化:

(1)       Number類型轉化爲string類型,用tostring();

(2)       String類型轉化爲Number,用Number();

var str = "123";
var num = 1;
alert(str + num);//彈出1231
alert(Number(str)+num) //彈出124

也可使用全局函數parseInt()和parseFloat()來進行轉換;parseInt()和parseFloat()的區別是Number()轉換是整個值,而parseInt()和parseFloat()則能夠只轉換開頭的數字部分。

alert(Number("123asdf"));//彈出NaN
alert(Number("1.2.3"))//彈出NaN
alert(parseInt("123sdf"));//彈出123
alert(parseFloat("sdfsdf"));//彈出NaN
alert(parseInt("sdf345"))//彈出NaN

Number()在轉化的過程當中布爾類型的true和false分別被轉化爲1和0其餘的不能轉化爲數值的所有轉化NaN。

alert(Number(true));//彈出1
 alert(Number(false));//彈出0
alert(Number(null));//彈出0

其餘的如果不能轉化爲數值類型的,基本上全轉化爲NaN;

擴展小知識:(1)判斷一個變量是不是數值,用IsNan()方法;

                 (2)在javascript中==和===的區別: "==" 只要求值相等; "===" 要求值和類型都相等;

                 (3)instanceof只是用於判斷object是不是class類的一個實例,是的話返回true,不然返回false;alert(a instanceof String);

2、第二種分類方法:用typeof()關鍵字來分類,能夠分爲:undefined,number,string,boolean,object,function

   

類型

例子

運行結果

Undefined

var a1; alert(typeof(a1));

function way{}  alert(way()); alert(typeof(way()))

undefined

number

Var num1=12; alert(typeof(num1));

number

string

Var num2=」12」; alert(typeof(num2));

string

boolean

Var flag=true; alert(typeof(flag));

boolean

object

Var str=new string(); alert(typeof(str));

Var a=null; alert(typeof(a));

object

function

alert(typeof(String));

function

相關文章
相關標籤/搜索