重新鞏固JS(一)——JavaScript基本類型

JavaScript基本類型

在編程領域中,數據類型(data type)用來將變量的值(value)進行分類,這樣在對變量的值進行數學、關係、邏輯等運算時就不會產生錯誤了。例如: 2 * 2是合法的,2 * John就不合法了。

JS中的基本類型分爲原始類型對象類型兩種

1. 原始類型:

原始類型(6種): Number、String、Boolean、Symbol、Null、Undefined

1.1 數值—Number

  1. 採用標準:不區分整數和浮點數,所有數值都用浮點數表示,採用IEEE 754標準定義的64位浮點格式。
  2. 整數:範圍是-2 ^53 ~ 2^53,有十進制,二進制(binary,以0b爲前綴,之後的值由0~1組成)、八進制(octal,以0o爲前綴,之後的值由0~7組成,注:不推薦以0爲前綴的表示法)、十六進制(hexadecimal,以0x爲前綴,之後的值由0~9a~f(10~15)組成)表示。例如:
//二進制
0b11 //合法
0b22 //不合法

//八進制
0o67 //合法
0o89 //不合法

//十六進制
0xAf //合法
0xjk //不合法
  1. 浮點數:數值中必須包含一個小數點,小數點後至少要有一位數字,浮點數計算可能會有誤差,對於極大或極小的數值可以用e表示法,例如:
//存在誤差
0.1 + 0.2 = 0.30000000000000004

//e表示法
3.14e5 //即爲314000
  1. 特殊數值,主要來自:全局直接量(無窮大Infinity、非數字NaN)、Number對象的屬性(Number.MAX_VALUENumber.MIN_VALUE等)、Math對象(Math.PIMath.E等)的屬性等。

1.2 字符串—String

  1. 採用標準:用來表示文本,由0個或多個16位Unicode字符組成的字符序列。
  2. 可以使用單引號或者雙引號(效果一樣,必須成對出現),在JS代碼中經常會出現HTML字符串,由於HTML標籤中的屬性值推薦的是雙引號,所以JS字符串推薦使用單引號,例如:
let imgEl = '<img src="xxxx.jpg" title="my photo">'
  1. 索引從0開始,長度是字符的個數
let str = 'Hello World'
str.length // => 11
str[0] // => 'H'
  1. 字符串不能直接換行,如果想拆分成多行,需要在每行的結尾添加反斜槓\,輸出的結果還是單行。
// 錯誤寫法
'ab
c'

//正確寫法
let str = 'multiple\
lines\
end'
str // => 'multiplelinesend'
  1. 轉義字符:反斜槓後加一個字符表示轉義字符,比如\n表示換行符,如果斜槓後面的字符沒有特殊含義,則忽略斜槓。常見轉義字符:
字符 含義
\n 換行
\\ 斜槓
\' 單引號,在用單引號表示的字符串中使用
\" 雙引號,在用雙引號表示的字符串中使用
\xnn 十六進制代碼表示的一個字符(其中n爲0~F)。例如,\x41表示’A’
\unnnn 十六進制代碼表示的unicode字符(其中n爲0~F)。例如,\u03a3表示希臘字符’∑’
  1. 模板字符串(ES6新增):使用反引號(重音符, " ` "),裏面的變量使用${}包裹,可以直接換行。
let name = 'cc'
name // => 'cc'
`Hello, ${name}` //=> 'Hello, cc' 

1.3 布爾值—Boolean

用來表示真或假,開或關等含義。

  1. 只有兩種值truefalse,通常用於if/else語句中,若爲true則執行if語句中的邏輯,否則執行else裏面的邏輯。
if( status === 'open') {
	console.log('Door is open');
} else {
	console.log('Door is closed');
}
  1. 假值和真值:JS中任意值都可以轉換爲布爾值。一共6個值(undefined、null、0、-0、NaN、"")會被轉換成false,其他值都是true 。

1.4 字符—Symbol(ES6新增)

可用作對象的非字符串屬性,它是唯一且不可變的,例如:

let uniqueName = Symbol(); 
let person = {}; 
person[uniqueName] = 'cc'; 
console.log(person[uniqueName]); // => cc

(備註:後期詳細講解)

1.5 Undefined

表示未定義或不存在,只有一個值undefined

let abc;
console.log(abc); // => undefined
console.log(abcd); //報錯,注意未賦值和未聲明的區別
let obj = {};
console.log(obj.name) // => undefined

1.6 Null

表示空值,Null類型只有一個值null。如果定義一個變量來表示一個對象的話,聲明時推薦將其設置爲null。

let obj = null;
obj = { name: 'cc'}

2. 對象類型—Object:

除了原始類型的值以外,其他都是對象。對象是鍵值對的集合,值可以是原始值,也可以是對象。例如:

//author對象:有name屬性,值爲'cc',還有age屬性,值爲100
let author = {
	name: 'CC',
	age: 100
}

2.1 重要的特殊對象

特殊對象函數 Function數組 Array日期 Date正則 RegExp全局 Global錯誤 Error
(備註:後期單獨詳細講解)

3 類型識別

可以使用typeof操作符來檢測變量的數據類型,它返回的值爲一個小寫的字符串。

變量abc的取值 typeof abc 的結果
let abc; 'undefined'
let abc = true; 'boolean'
let abc = 123; 'number'
let abc = 'abc'; 'string'
let abc = function () {}; 'function'
let abc = {}; //[]、null 'object'
let abc = Symbol(); 'symbol'

說明:整理自網易公開課。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章