Js數(shù)據(jù)類型
Js的七種數(shù)據(jù)類型:number string boolean symbol undefined null object
基本類型 number string boolean symbol undefined null
復雜類型 object
array 和 function 都屬于object 類型
數(shù)字 number
概括:用來表示整數(shù)和小數(shù)等
十進制寫法:
10.1.11.25e21.25E2二進制,寫法:
0b11-
八進制,寫法:
011在存儲以"0"開頭的電話號碼時需要用字符串類型而不是數(shù)字類型,否則容易被計算機認為是八進制數(shù)字類型
16進制,寫法:
0x11
字符串 string
概括:用來表示文本內(nèi)容
-
寫法:
'你號'"你號"''""' '" "注意事項:空字符串長度為0,空格字符串長度由空格個數(shù)決定
-
轉(zhuǎn)義符:反斜杠
\在字符串中用來表示一些特殊字符,又叫轉(zhuǎn)義符。常用的轉(zhuǎn)義符:
-
\0:null(\u0000) -
\b:后退鍵(\u0008) -
\f:換頁符(\u000C) -
\n:換行符(\u000A) -
\r:回車鍵(\u000D) -
\t:制表符(\u0009) -
\v:垂直制表符(\u000B) -
\':單引號(\u0027) -
\":雙引號(\u0022) -
\\:反斜杠(\u005C)
-
-
多行字符串:
-
提前輸入
\,類似命令行的換行 (不推薦此寫法)。案例:var a = '123\ 456' //結(jié)果是"123456"此種方法如果在
\后先添加了空格,會只轉(zhuǎn)義空格造成報錯 -
在要換行的地方結(jié)束當前字符串并加一個
+號。案例:var a = '123'+ '456' //結(jié)果是123456
-
-
將需要換行的字符串用兩個反引號 " ` " (鍵盤上 1 前面的那個符號) 括起來。案例:
var a = `123 456` //結(jié)果是"123?456"
布爾 boolean
概括:只有兩個特殊的值,表示真?zhèn)?/p>
來源:一個叫喬治·布爾(英語:George Boole)的人
值:true false
-
a && b 只有 a b 同時為真(true) 其結(jié)果才會為真
b\a 真 假 真 true true 假 true false -
a || b 只要 a b 中有一個為真(true) 其結(jié)果就為真
b\a 真 假 真 true true 假 true false
null 類型 和 undefined 類型
概括:值就是它本身,它們的意思都是空。
-
兩者區(qū)別
undefined 表示"未定義"或不存在,null表示空值,即此處的值為空。
如果一個變量沒有賦值 結(jié)果就是 undefined
-
用法:
- 如果想創(chuàng)建一個對象但不想賦值,可以給它 null,如:
var obj = null空對象。 - 如果想創(chuàng)建一個非對象不想賦值,可以給它 undefined 。
var 變量默認本身的值就是 undefined。如:var a。undefined通常用來表示空,非對象。
- 如果想創(chuàng)建一個對象但不想賦值,可以給它 null,如:
對象 object
概括:各種值組成的集合
-
語法:
var obj = { key1 : value1, key2 : value2, key3 : value3 } -
注意事項:
對象中的 key 永遠是字符串的 key 。
一般情況下獲取某個value的值必須用:
person['name']的寫法。只有在 key 符合標識符的命名規(guī)范的情況下才可以使用:person.name的寫法。IE8 以下的瀏覽器不支持
{ key1: value1, key2: value2 }中間用逗號分割,只有 IE8 及其以上的瀏覽器支持如果 key 的名字不加引號就要遵循標識符的命名規(guī)則。
-
用法案例:
var pereon = { name : 'name', age : 18, maried : true, children : null, }
-
特殊的寫法:
var obj = { '' : 'frank', 'a b' : 'second', }key 可以是一個空的字符串,也可以在兩個字符之間加空格
-
錯誤寫法:
var obj = { 2k : 'frank', }此處的 key 不可以以數(shù)字開頭,因為不加引號要遵循標識符的命名規(guī)則。
-
刪除
-
刪除value后再去獲取value,瀏覽器會報錯
var pereon = { name : 'name' } delete person['name'] person.name // 值是 undefined 瀏覽器會報錯 'name' in person // false -
當給key的賦值為undefined時它的值也是 undefined ,但是 使用 in 判斷它是存在的
var pereon = { name : 'name' } person.name = undefined // undefined 'name' in person // true
-
-
對象遍歷:
var person = { name : 'frank', age : 18 } for(var key in person) { console.log(key) } /* 輸出: name age name age 的順序是隨機的 */ for(var key in person) { console.log(key,person[key]) } /* 輸出: name frank age 18 注意person[key]只能通過[]方式,不能通過 person.key 因為 person.key是一個字符串,但for in 中的key不是 */
typeof 運算符
-
用法案例:
var a = 1 typeof a //返回的值是number -
特殊案例:
在Js中,大部分數(shù)據(jù)類型 typeof 就會顯示它的數(shù)據(jù)類型,但以下兩種比較特殊:
當
typeof null時,null 所顯示的類型是 object-
當 typeof 一個函數(shù)時,它的返回值是 function 但 function 不是一種數(shù)據(jù)類型。例:
function a() {} typeof a //返回的值是'function'
注:本文為原創(chuàng)文章,著作權(quán)歸本人和饑人谷所有,轉(zhuǎn)載務(wù)必注明來源