1.JavaScript大小寫敏感;
2.宣告變數如果不寫var,則為聲明了全域變數;任何不是方法的函數,都是全域變量,其裡面的this都指向window;
3. %運算符,求餘數,保留整數,y=5;x=y%2;則x=1;
4.如需把兩個或多個字串變數連接起來,請使用運算符,區別於php;
5.三目運算:greeting=(visitor==”PRES”)?”Dear President “:”Dear “;
6.indexOf()方法,從0算起,空格也算一位;
7.Math.floor()向下取整數,傳回的值小於或等於該數,Math.floor(-5.9),傳回-6;
8.函數內部宣告變數的時候,一定要使用var指令。如果不用的話,你實際上聲明了一個全域變數!
9.寫demo時,一定要將JS寫到最下面,防止因html元素未加載,導致JS程式碼運行不出來預期的效果(JS是解釋型語言,邊加載邊解釋,只有目標對像被加載到DOM樹以後才能獲取和操作);
10.閉包的含義:閉包其實就是函數的嵌套,內層的函數可以使用外層函數的所有變量,即使外層函數已經執行完畢(所以閉包會有性能問題,外層的變量在外層函數調用結束之後還一直存在在內存中);
11.checkbox打鉤的值為check,不是true;取消的值為undefined,不是false;
12.判斷變數未定義用typeof(flag)===”undefined”;
13.JS函數內部可以存取全域變數(或作函數外部變數),這點區別於PHP;
14.函數中的this,總是指向呼叫者,或者可以這樣說:不是方法的函數,this都指向window;是方法的函數this指向物件本身(要注意方法中的閉包問題,this是指向window的);
15.銷毀變數的方法:obj = null; delete obj;
16.直接判斷時,以下會轉換成false: undefined,null,0,-0,NaN,”"(空字串);所有其他值,包含物件、陣列都會轉換成true;
17.布林值包含一個toString()方法,可以傳回true或false的字串;
18.可以說javascript只有6種資料型,數字、字串、布林值、null、undefined和物件;
19.javascript中沒有區塊級作用域,取而代之的是函數作用域(參見犀牛書第六版P57);
20.javascript的宣告提前特性:在函數裡宣告的所有變數都提前到函數的頂端(參見犀牛書第六版P58);
21.JS中函數的執行都是非同步的,要注意取值的問題