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