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中函數的執行都是異步的,要注意取值的問題