基本概念
語(yǔ)法
區(qū)分大小寫(xiě)
變量test和變量Test分別表示兩個(gè)不同的變量
標(biāo)識(shí)符
所謂標(biāo)識(shí)符,就是指變量、函數(shù)、屬性的名字,或者函數(shù)的參數(shù)。
標(biāo)識(shí)符的的格式
- 第一個(gè)字符必須是一個(gè)字母、下劃線(xiàn)(_)或一個(gè)美元符號(hào)($);
- 其他字符可以是字母、下劃線(xiàn)、美元符號(hào)或數(shù)字。
駝峰命名 : 第一個(gè)字母小寫(xiě),剩下的每個(gè)單詞的字母大寫(xiě)。
嚴(yán)格模式
在整個(gè)腳本中啟動(dòng)嚴(yán)格模式,可以在頂部添加一下代碼:
"use strict";
嚴(yán)格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。
關(guān)鍵字和保留字
關(guān)鍵字可用于表示控制語(yǔ)句的開(kāi)始或結(jié)束,或者用于執(zhí)行特定操作等。關(guān)鍵字是語(yǔ)言保留的,不能用作標(biāo)識(shí)符。盡管保留字還沒(méi)有任何特定的用途,但它們有可能在將來(lái)被用作關(guān)鍵字。
變量
ECMAScript的變量是松散類(lèi)型的,所謂松散類(lèi)型就是可以用來(lái)保存任何類(lèi)型的數(shù)據(jù)。(每個(gè)變量?jī)H僅是一個(gè)用于保存值的占位符而已)
用var操作費(fèi)定義的變量將成為定義該變量的作用域中的局部變量。
function test(){
var message = 'hi'; //局部變量
}
test()
console.log(messate); //錯(cuò)誤
可以用一條語(yǔ)句定義多個(gè)變量
var message = 'hi',
found = false,
age = 29;
在嚴(yán)格模式下,不能定義名為eval或arguments的變量,否則會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤。
數(shù)據(jù)類(lèi)型
ECMAScript有六種簡(jiǎn)單數(shù)據(jù)類(lèi)型(基本數(shù)據(jù)類(lèi)型):undefined Null Boolean Number String Symbol 一種復(fù)雜數(shù)據(jù)類(lèi)型——Object,Object本質(zhì)上是由一組無(wú)序的名值對(duì)組成的。ECMAScript不支持任何創(chuàng)建自定義類(lèi)型的機(jī)制。
typeof操作符
由于ECMAScript是松散類(lèi)型的,因此需要有一種手段來(lái)檢測(cè)給定變量的數(shù)據(jù)類(lèi)型 ——typeof 就是負(fù)責(zé)提供這方面新的的操作符。
//對(duì)一個(gè)值使用typeof操作符可能返回下列某個(gè)字符串
“undefinen” ——如果這個(gè)值未定義
"boolean" ——如果這個(gè)值是布爾值
"string" ——如果這個(gè)值是字符串
"number" ——如果這個(gè)值是數(shù)字
"object" ——如果這個(gè)值是對(duì)象或null
"function" ——如果這個(gè)值是函數(shù)
有些時(shí)候,typeof 操作符會(huì)返回一些令人迷惑但技術(shù)上卻正確的值。比如
typeof null => "object" //特殊值null被認(rèn)為是一個(gè)空的對(duì)象引用
Undefined 類(lèi)型
Undefined類(lèi)型只有一個(gè)值,既特殊的undefined。使用var聲明變量單位對(duì)其加以初始化時(shí),這個(gè)值就是undefined
var message;
console.log(message == undefined) //true
等價(jià)于
var message = undefined;
console.log(message == undefined) //true
一般不存在顯式地把一個(gè)變量設(shè)置為undefined值的情況。
Null
Null類(lèi)型也是只有一個(gè)值的數(shù)據(jù)類(lèi)型,這個(gè)特殊的值是null。從邏輯角度來(lái)看,null值表示一個(gè)空對(duì)象指針。(typeof null // object)
只要意在保存對(duì)象的變量還沒(méi)有真正保存對(duì)象,就應(yīng)該明確地讓該變量保存null值。這樣不僅可以體現(xiàn)null作為空對(duì)象指針的慣例,也有助于進(jìn)一步區(qū)分null 和 undefined。
Boolean
Boolean類(lèi)型只有兩個(gè)字面值 true 和false 。這兩個(gè)值與數(shù)字值不是一回事,true不一定等于1,false也不一定等于0.
Number
NaN
- 任何涉及NaN的操作都會(huì)返回NaN
- NaN與任何值都不想等,包括NaN本身
數(shù)值轉(zhuǎn)換
Number()
parseInt()
parseFloat()
String
String類(lèi)型用于表示由零或多個(gè)16位Unicode字符序列,既字符串。
object類(lèi)型
ECMAScript中的對(duì)象其實(shí)就是一組數(shù)據(jù)和功能的集合。
操作符
一元操作符
遞增和遞減操作符
一元加和減操作符
位操作符
布爾操作符
與或非
乘性操作符
乘法
除法
加性操作符
加法
減法
關(guān)系操作符
相等操作符
相等和不相等
全等和不全等
條件操作符
賦值操作符
逗號(hào)操作符
語(yǔ)句
54頁(yè)