首先說說js資料型別的分類。分為標準型和typeof型別(即控制台列印,瀏覽器區分)
標準型:基本型別中有:number、string、boolean、undefined、null 復合型別:object (物件,array陣列也算在裡面了)。
typeof型:number、string、boolean、undefined、function、object 。
以上兩者主要區分為: 公共的都有number(nan也是number型別中的)、string、boolean、undefined、object(包含了array和null) , typeof裡的有function即函式。然後null typeof型別其實也是object。在標準型中,它是特殊的乙個,叫空物件。空物件做不了屬性操作同時不能新增自定義屬性,也沒有方法,這裡需要特別注意的是它跟空陣列的區別,空陣列雖然也是物件型別,但不能把它跟空物件混為一談,因為它本身是有屬性和方法的,只是暫時內部沒有成員而已。陣列本身也是有下標有長度的,物件是不具有下標和長度一說的。
資料型別中的方法
1.parseint 從左向右去檢視需要轉換的目標,如果碰到一位是非數字的,結束執行,返回之前的數字。 parseint (100px)=100;
2. parsefloat 從左向右去檢視需要轉換的目標,如果碰到一位是非數字的,結束執行,返回之前的數字,可識別小數點。parsefloat (.12px)=0.12,parsefloat (13.24abc)=13.24
3.number 強制轉換 從左向右看完所有的字元,如果符合數字規則就轉換它,不然就轉為nan. number (false)=0,number(null)=0,number(document)=nan,轉換空字串結果也為0,帶空格的字串也為0, 空物件則為nan。轉換undefined則為nan.特殊情況面對陣列時,如果陣列為空,則結果為0,如果陣列只有乙個成員,則用這個成員去轉換,如果陣列成員為多個時,則為nan。number(.12)=0.12.
4.字串轉換方法 var a=123, a=a.tostring()或者a=string(a)
5.boolean 布林值轉換 它對空字串的轉換為false,空格字串則為true。真:true,非空字串,非0數字,非空物件,假: false, 空字串,0,nan,null,undefined。
6 強制型別轉換,或者顯示型別轉換
parseint/parsefloat/number
7 隱式型別轉換:
瀏覽器自己進行轉換,其他型別轉換成數字,主要調去number
+,+=
1. 當加號左右兩測有一位是字串是,會把另外一也轉成字串
2. 使用+號時,兩邊沒有字串時,優先嘗試把左右兩側都轉換成數字,如果不能轉換成數字就轉換成字串進行連線
-,*,/,%,-=,*=,/=,%=
運算子左右兩側轉換成數字進行運算
例子:var a = 10;
var b = "10";
console.log(a + b);
// + 號 碰到字串的時候,就會把兩側的內容都轉換成字串,執行字串連線
var a = 10;
var b = true;
console.log(a + b);
// + 號的兩側沒有字串,則優先轉換成數字,進行+法運算
var a = 10;
var b = function(){};
console.log(a + b);
// + 號的兩側沒有字串,則優先轉換成數字,進行+法運算,如果不能轉換成數字,則轉換成字串進行字串連線。
-,*,/,% 這些運算子都是只有數字運算的功能,所以在使用的時候,都會去把其他型別轉換成數字。
關係運算子
<、>、<=、>=、==、!=、===、!==
比較後都會返回布林值
== 和 ===,以及 !=和!==的區別
== 和 != 會進行隱式型別轉換,把左右兩側的資料型別轉換成一樣的之後,再去比較
===和!== 進行比較的時候,也會比較資料型別,資料型別不一樣的話,即使值一樣,也是false.
&& 與、|| 或、! 否 返回的結果都是 true和 false
簡短總結歸類:
資料型別:
1. 標準劃分:
基本型別: number/string/boolean/undefined/null
物件型別(復合型別):object(包含array)
2. typeof(運算子,檢視資料型別):
number:
number.positive_infinity 正無窮
number.negative_infinity 負無窮
從負無窮到正無窮的數字以及nan
string:
包含在引號''中的一串字元
undefine:
無定義boolean:
true、false
object:
array、object、element、null
function :
null:空物件 (null不能進行屬性操作)資料型別: object
nan: 非數字
1. nan不等於任何東西,並且不等於它自己
2. 檢測乙個內容是否是nan的時候,可以使用isnan();
3. 資料型別:number
4. isnan() return: true/false, isnan隱式呼叫了number
強制型別轉換:
強制轉換為數字:
parseint(要轉換的內容)、parsefloat(要轉換的內容)
從左向右一位位轉換,碰到一位非數字,就把之前的內容提取出來,如果第0位就是非數字,結果nan
number(要轉換的內容):
先看完整個內容,然後整體去轉換數字
1. true 1/false 0;
2. 0
3. ["2"] 轉換陣列的第0位
4. [2,3] 轉換nan
返回值都是乙個數字
強制轉換為字串:
1. 要轉換的內容.tostring()
2. string(要轉換的內容)
強制轉換為布林值:
boolean(要轉換的內容);
1. 真: true、非0數字、非空物件、非空字串
2. 假: false、nan、0、null、空字串、undefined
JS 資料型別小結
nan 不等於任何值,包括他本身。es5 中 parseint 只能通過制定技術解析八進位制,如 parseint 033 8 parsefloat 只解析十進位制的值,只解析乙個小數點,出現第二個小數點即停止解析。字串一但建立,它們的值就不能改變。tostring index 中 index 為基...
JS資料型別小結
基本資料型別 undefined null boolean number string undefined型別只有乙個值,即特殊的undefined。在使用var宣告變數但未對其加以初始化時,這個變數的值就是undefined var message console.log message unde...
JS中的資料型別
js中的資料型別分為兩種 基本資料型別和引用資料型別 基本資料型別 number boolean string undefined null symbol es6中新增 引用資料型別 object array function date regexp 等 講區別之前,需要先了解堆 heap 和棧 s...