一.語法
1.標(biāo)識符
標(biāo)識符的要求:
大小寫敏感
標(biāo)識符的組成:以字母,數(shù)字,下劃線以及美元符號,unicode符號開頭,可以包含數(shù)字,但不能已數(shù)字開頭
不能使用保留字以及關(guān)鍵字
關(guān)鍵字:控制語句詞:if swith case in catch
執(zhí)行特定操作詞:break default delete new return this
保留字:class enum extends super const export import
嚴(yán)格模式額外增加的保留字:implements.package,
interface static public protected private yiele let標(biāo)識符的命名:小駝峰命名法(userName)或匈牙利命名法(屬性+類型+對象描述)
小駝峰命名法:從第二個(gè)英文單詞開始,每個(gè)單詞的首字母大寫.
大駝峰命名法:每個(gè)單詞的首字母都要大寫.-
嚴(yán)格模式 node中建議全部使用嚴(yán)格模式.
注意:命名誤區(qū) 以數(shù)字開頭,不可以 ,例如 var 1q 以*組成,不可以 ,例如:var ***;var a*b 以表達(dá)式開口,不可以,例如 var a+b 以$開頭,可以.
2.嚴(yán)格模式
腳本中使用嚴(yán)格模式
在文件的開頭使用"use strict";
例如:
"use strict"
//定義變量
var name = "玲瓏學(xué)院";
//測試數(shù)據(jù)
console.log(name);函數(shù)中使用嚴(yán)格模式
在函數(shù)的開頭使用 "use strict";
例如:
//定義函數(shù)
function getAge()
{
"use strict";
var name = "玲瓏學(xué)院";
}嚴(yán)格模式的影響
變量的影響
規(guī)定:變量的聲明必須使用var關(guān)鍵字不能使用with,eval等動態(tài)綁定,使嚴(yán)格模式執(zhí)行的效率更高
不能重名:屬性名,參數(shù)名
禁止使用八進(jìn)制使用數(shù)字,
保留字不能使用標(biāo)識符
3.注視與語句
- 注視
1.單行注視: //
2.多行注視: /*/
/
*@author
*@param
*/ - 語句
- 每一行都是一個(gè)語句
- 語句可以使用分號結(jié)尾,這是建議使用的方法
- 代碼塊:使用大括號的多條語句.
二.基本數(shù)據(jù)類型
1.變量
- 定義 :可以變化的量,可以儲存各種類型的數(shù)據(jù)
注意:變量定義使用var關(guān)鍵字,也可以不實(shí)用var,此時(shí)的變量是全局變量(不推薦) - 定義變量的兩種方法:
1.定義變量: var str;
2.定義變量并進(jìn)行初始化: var userName = "玲瓏學(xué)院";
2.數(shù)據(jù)類型
數(shù)據(jù)類型的分類
-
簡單數(shù)據(jù)類型
Undefined 未定義,為初始化或初始化的值為:undefined,值為undefined
Null :表示指向空對象的指針.可用于對象初始化.
Undefined與Null的區(qū)別:
Number(null) = 0;
Number(Undefined) = NaN;String
單引號和雙引號,都可以轉(zhuǎn)義字符,都不可以解析變量.
將其他類型的數(shù)據(jù)轉(zhuǎn)換為字符串:toString()/String();Number:整數(shù)和浮點(diǎn)數(shù).
整數(shù)邊界:MAX_VALUE, MIN_VALUE
并且可以使用isFinite()檢測是否在數(shù)值范圍內(nèi).
注意:Number有一個(gè)特殊的值
NaN,非數(shù)值,檢測一個(gè)值是否是NaN用函數(shù)isNaN();
其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)值類型的使用:
Number,不識別八進(jìn)制,不識別數(shù)值和字符串的混合數(shù)據(jù)
parseInt(),可以識別八進(jìn)制,識別數(shù)值和字符串的混合數(shù)據(jù)
parseFloat()和parseInt(),如果有多個(gè)"."號,則只識別從左往右的第一個(gè)點(diǎn)Boolean: true/false,用作條件判斷
哪些類型可以轉(zhuǎn)換成false
1.空字符串
2.數(shù)值0 ,null ,NaN,Undefined.
-
復(fù)雜數(shù)據(jù)類型
a.俠義的對象(Object)
b.數(shù)組(Array)
c.函數(shù)(Function)1.成員:值或函數(shù)方法 2.對象的常用方法:toString 對象初始化的方法: ①構(gòu)造方法 var obj = new Object(); ②直接使用{} var obj = {};
3.數(shù)據(jù)類型與檢測符
- 數(shù)據(jù)類型的檢測typeof
- 是一個(gè)操作符,不是函數(shù)
- 返回值為字符串:undefined/boolean/number/string/object/function
三.運(yùn)算符
1.一元運(yùn)算符:++ -- :n++或者是++n n=n+1
n++與++n的區(qū)別:
n++是先賦值在運(yùn)算
++n是先運(yùn)算再賦值
其他數(shù)據(jù)類型進(jìn)行++或者--操作時(shí),先用number()轉(zhuǎn)換成數(shù)值型,然后再進(jìn)行運(yùn)算
例如: var n = true;
++n;
此時(shí)的n就是2.
2.位運(yùn)算符:進(jìn)行二進(jìn)制的操作
3.邏輯運(yùn)算符
- 邏輯與 : && 兩邊位true 則為true
true && true //true
true && false //false
var a = {}; a && 2 //2 如果&&符號左邊的為對象,那么就返回右邊的數(shù)據(jù)
var b = {}; a && b //b 如果&&符號兩邊都是對象,那么就返回右邊的對象.
null && 2 //null 如果兩邊任何一個(gè)數(shù)據(jù)是null,那么返回的就是null
2 && null //null
NaN && 2 //NaN 如果兩邊任何一個(gè)數(shù)據(jù)是NaN,那么返回的就是NaN
2 && NaN //NaN
NaN && null //NaN如果兩邊分別是NaN,null,哪個(gè)在前,就返回哪個(gè)
null && NaN //null - 邏輯或 : || 一邊為真 則為真
true || false //true
false || true //true
true || true //true
var b = {}; - 邏輯非 : ! ,取反
注意:邏輯與和邏輯或,都有短路的情況.
邏輯與中,左邊語句為false,則右邊的語句不會被執(zhí)行.
邏輯或中,左邊數(shù)據(jù)為true,右邊數(shù)據(jù)不會被執(zhí)行.
4.算術(shù)運(yùn)算符
- x:超過了數(shù)值類型的范圍返回infinity或-infinity.infinity*0=NaN
- /:infinity/0 = Infinity 0/0=NaN
- +:可以進(jìn)行數(shù)字想家,也可以非用于字符串的連接操作
- -:數(shù)字相減
5.比較運(yùn)算符
- 包括>,<,>=,<=,=,==,===,!=,!==
13 == '13'; //true
13 === '13';//false
null ==undefined; //true
null ===undefined;//false
var b = {};var a = {}; a == b //false 當(dāng)兩個(gè)變量指向同一個(gè)對象時(shí),才相等.
var c = b; c === b // true
'a' > 'b'; //false;比較的是字母的阿斯克碼值
6.三元運(yùn)算符
- var b = (a>b?a:b) //先對'?'左邊的表達(dá)式求值,如果為true執(zhí)行':'左邊的語句,如果為false,執(zhí)行':'右邊的語句
7.賦值運(yùn)算符
- =,+=,*=,/=,%=
8.逗號運(yùn)算符
- var a =1,b =2,c = 5; //一行語句中定義多個(gè)變量
- ++a,--b,c++; //在一行中執(zhí)行多個(gè)操作.