1. 程式人生 > >JS資料型別判斷方式及優缺點、String常用方法

JS資料型別判斷方式及優缺點、String常用方法

資料型別判斷方式及優缺點

JS中一共有七種資料型別: 一種引用型別——Object, 六種基本資料型別——Number、String、Boolean、Null、Undifined、Symbol(ES6新增)

typeof(var):返回的是一個字串,但是對於複雜資料型別來說,不管是陣列Array、日期Date,或者是普通物件,這種方法返回的都是Object,無法更詳細的區分。 (var) instranceof (type):但是這種方法在iframe下會產生bug,而且這種方法也無法準確判斷Function和Object的型別,因為既可以說函式是個構造方法,也可以說方法是一個物件。 (var).Constructor (type):這種方法在類繼承的時候同樣有可能產生bug。 Object.prototype.toString.call(var) == ‘[Object (type)]’:完美。

String 各種常用操作

字串分割

1.slice()、substr()、substring() 一、引數含義上的區別 從0,length-1 開始包含,結尾不包括

第一個引數 第二個引數(可選)
slice() 開始位置 需要返回的子字串最後一個字元後面的位置
substr() 開始位置 需要返回的字元個數
substring() 開始位置 需要返回的子字串最後一個字元後面的位置
var strValue = "javascript programing";
alert(strValue.slice(3));           //"ascript programing"
alert(strValue.substring(3)); //"ascript programing" alert(strValue.substr(3)); //"ascript programing" alert(strValue.slice(3,13)); //"ascript pr" alert(strValue.substring(3,13)); //"ascript pr" alert(strValue.substr(3,13)); //"ascript progr"

二、處理負值引數時的區別。

引數的含義不變,只不過引數為負值時,3個子字串函式會對負值引數進行不同的處理。

第一個引數 第二個引數(可選) 備註
slice() 將負值與字串的長度相加 將負值與字串的長度相加
substr() 將負值與字串的長度相加 將負值變為0
substring() 將負值變為0 將負值變為0 負值處理後,該函式會將較小的數作為開始位置,較大的數作為結束位置
var strValue = "javascript programing";//strValue.length()=21
alert(strValue.slice(-3));        => alert(strValue.slice(18));       //"ing"
alert(strValue.substring(-3));    => alert(strValue.substring(0));    //"javascript programing"
alert(strValue.substr(-3));       => alert(strValue.substr(18));      //"ing"
alert(strValue.slice(3,-13));     => alert(strValue.slice(3,8));      //"ascri" 
alert(strValue.substring(3,-13)); => alert(strValue.substring(0,3));  //"jav"
alert(strValue.substr(3,-13));    => alert(strValue.substr(3,0));     //""