【JS復習筆記】01 基本語法
作為一個前端苦手,說是復習,你就當我是重學好了。
好吧,我當然不可能抱著一個磚頭去復習,所以撿了本薄的來讀——《JavaScript語言精粹》。
當初帶我的人說這本書挺好,就看這本書好了。我覺得他說的挺對。我喜歡這麼薄的書,言簡意赅。
好吧,廢話少說,來點正經的小總結。
JavaScript是原型繼承的,就是說它直接從其它對象繼承屬性。如果你對原型繼承有點不懂,可以去看看原型模式,大概就是那個樣子了。
JavaScript依賴於全局變量進行連接。所有編譯單元的頂級變量都被撮合到一個被稱為全局對象的命名空間。不懂你就理解為C#就一個命名空間,所有的變量和函數都在這一個命名空間裡面寫的。
數字:
- JS只有一種數字類型,相當於double。(不知道為什麼,我每次打double輸入法都會出現逗比了三個字)
- NaN是一個數值,可以用isNaN(number)檢測NaN
- Infinity表示所有大於一個非常大的數值的值
- JS有一個對象Math,它包含一套作用於數字的方法。
字符串:
- Js中所有字符都是Unicode的,16位
- Js沒有字符類型,只需創建僅包含一個字符的字符串即可
- 反斜線,引號和控制字符可以用轉義字符插到字符串中,如"A"==="\u0041"
- 字符串有個length屬性來表示字符串的長度,"Troy".length是5,toUpperCase()為大寫
語句:
- 不像許多其他語言,JS的代碼不會創建新的作用域,因此變量應該被定義在函數的頭部,而不是代碼塊中。所以推薦像C語言一樣都放在函數開頭。
- 條件判斷被列為假的值:false,null,undefined,空字符串' ',數字0,數字NaN,而其它所有值都為真,包括true,"false"
- 循環語句有兩種,一種是正常的for循環,一種為類似於for in語句,會枚舉一個對象的所有屬性名。記得是屬性名哦,不是屬性值,更不是屬性對象。
- 可以用obj.hasOwnProperty("name")這種方式判斷obj是否有對象這個屬性。
- try catch語句的throw可以拋出任何對象,而我們catch到的對象一般都有name和message兩個屬性
- return在可以返回任何值,如果不返回值,默認為undefined。
類型:
- 用typeof來得到類型,共會返回以下幾種:'number','string','boolean','undefined','function','object'.即使是null或者數組,都返回'object'