javascript的基本類型剖析:
javascript的基礎資料型別 (Elementary Data Type)包括 string,number,boolean,function,object,undified主要的6的基礎資料型別 (Elementary Data Type)
這篇文章就主要介紹一下這六種基礎資料型別 (Elementary Data Type)的主要方法和使用
1 字元類型string常用的方法有
parseInt(str1) 不是字元類型的方法
substring(3,5) 字元截取
indexOf("h"),lastIndexOf("h") 索引尋找
toUpperCase() 大小寫轉換函式
var str="abc"; //最常用的字元變數賦值 類似於 var str=new String("abc") //常用方法 //1 把一個字元轉換為 字數,比如 把 “1234” 轉換為 數實值型別的整數 var str1="1234" //這裡需要注意的是parseInt並不是string類型的方法,而是window對象的方法 console.info(parseInt(str1)) var str2="heshengjun123test" // 2 把一個字串進行截取 比如 把 var str2="heshengjun123test" //截取 3,5 之間的字元 //需要注意的是 字元、數組的下標都是從0 開始計算 console.info(str2.substring(3,5)) //包括第三個字元,不包括第五個字元 //尋找字元第一次的位置,如果找不到則返回-1 console.info(str2.indexOf("h")) //可以傳一個字元,也可以傳入字串 //從字元後面開始尋找字元第一次的位置,如果找不到則返回-1 console.info(str2.lastIndexOf("h")) // //字串串連 console.info(str2.concat("haoren")) //把兩個字串串連起來返回 等效於 str2+"haoren" //大小寫轉換函式 console.info(str2.toUpperCase())
2 數實值型別 number幾個特別的值 NaN,Infinity,-Infinity
對於NaN和其他資料進行計算返回的是 NaN
//定義數值 var num=123; //等效於new Number(123) // 1/0 不會報錯,會返回一個無窮大 Infinity -1/0 返回一個無窮小 -Infinity console.info(1/0) console.info(-1/0) //兩個數整數相除可能返回一個小數,這點和java等進階語言一樣 console.info(4/3) //返回 1.3333333333333333 console.info(typeof NaN) //NaN是一個number的值,表示不是一個數(not a number) //比如parseInt("abc")就返回NaN console.info(parseInt("abc")) console.info(.6) //表示一個數0.6 //NaN和其他資料計算返回一個NaN console.info(NaN-199);
3 布爾類型 boolean只有兩個值:true,false
對於字元,數值可以轉成為boolean中的true或者false
字元可以轉換為boolean類型,一般情況為true,Null 字元為false
數字轉換為boolean類型,一般情況為true,0 為false
對於對象也可以轉換為boolean類型,其中null對象轉換為false
對於一般的類型都可以使用兩個!轉換為boolean類型
//定義一個布爾類型變數 只有兩個值true false var bool=true; //等價於new Boolean(true) console.info(bool.toSource()) //字元可以轉換為boolean類型,一般情況為true,Null 字元為false if("abc"){ console.info("字元可以轉換為boolean類型,一般情況為true,Null 字元為false") } //數字轉換為boolean類型,一般情況為true,0,NaN 為false if(!NaN){ console.info("數字轉換為boolean類型,一般情況為true,0 為false") } //對於一般的類型都可以使用兩個!轉換為boolean類型 //對於對象也可以轉換為boolean類型 if(!null){ console.info("對象轉換為boolean ") }4 function類型更多詳細介紹請參考下一篇關於函數的專題
函數有三種定義方式:function 語句、 函數直接量、Function建構函式
//定義、聲明一個函數 var fun1=function(){console.info("這是一個函數") } //執行一個函數 fun1(); console.info(fun1.length) //返回定義函數的參數個數 console.info(fun1.arguments) //arguments這個變數需要在定義函數中使用,可以擷取實際的參數個數 //對於函數的call()方法和apply()方法,下節詳細介紹,主要是改變函數的範圍 console.info(fun1.call()) //toSource方法不一定有,Firefox瀏覽器支援 返回函數的定義 console.info(fun1.toSource()) //定義一個使用arguments的函數 //對於有傳回值的函數,傳回值運算式需要分號結尾,並且放到最後 function fun2(x,y){ //實際參數的個數 alert(arguments.length) //具體的參數值 alert(arguments[0]) } //執行函數 fun2(1,2,3,4);5 object對象這裡是指具體的執行個體對象,不是類的概念
對象的簡單表示 {'name':'zhangsan','age':18}
propertyIsEnumerable 屬性判斷, 可以通過for..in迴圈出來
hasOwnProperty 自己的屬性,不是原型的屬性
//定義一個對象 var obj={'name':"zhangsan",'age':18} //每個對象都有的一個變數 obj.prototype=123 //建構函式 console.info(obj.constructor()) //判斷是否是自己的屬性 返回true false console.info(obj.hasOwnProperty('name')) //返回這個對象的值 console.info(obj.valueOf()) //propertyIsEnumerable 判斷一個對象的不是原型的屬性 // 可以通過for..in迴圈出來 console.info(obj.propertyIsEnumerable("name")) for(var i in obj){ console.info(i) }6 undified類型變數聲明了,但是並沒有被賦值 其實也等同於Null
var a; //只有聲明,沒有賦值,值為undefined console.info(a) //undefined 類型 console.info(typeof undefined) //兩個值相等 console.info(undefined==null)