Chapter 3 基本概念
數據類型
- typeof 操作符:
- undefined 未定義
- boolean 布爾值
- string 字符串
- number 數值
- object 對象/null
- function 函數
- undefined 是 null 的派生值
- 聲明變量
- 浮點數值(IEEE754)
- 0.1 + 0.2 != 0.3
- 數值范圍
- Number.MIN_VALUE ~ Number.MAX_VALUE
- <: -INFINITY >: INFINITY
- NaN: Not a Number (NaN != NaN)
- 數值轉換
- Number()
- parseInt()
- parseFloat()
- ES5不支持八進制字符串轉字符,會忽略前導零,可以使用基數進行進制指定:
- var number = parseInt("070", 8); //56
- Object
- var o = new Object(); // Create an Object
- constructor: Object()
- hasOwnProperty("propertyName")
- isPrototypeOf(object)
- propertyIsEnumerable("propertyName")
- toLocaleString()
- toString()
- valueOf()
操作符
-
增減操作符
- var s1 = "2"; s1++; // 變成數值 3
- var s2 = "z"; s2++; // 變成NaN
- var b = false; b++; // 變成數值1
- var f = 1.1; f--; // 變成數值0.10000000000000009
- 運算符重載
var o = { valueOf: function() { return -1; } };
-
位運算
- & | ~
- << >>
- ^ 異或 (只有一個1才返回1)
-
相等
- == != 相等和不相等
- === !== 全等和不全等
- "55" == 55
- "55" !== 55 (全等會比較類型和數據)
語句
-
for-in 語句
- for (property in expression) statement;
- 通過for-in輸出對象的屬性的順序是不可預測的。
label break continue 組合語句
-
with 語句 (Not Recommanded)
- 作用:將代碼的作用域設置到一個特定的對象中。
- with (expression) statement;
- example:
// without with: var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href; // use with: with (location) { var qs = search.substring(1); var hostName = hostname; var url = href; }
函數
-
語法
function functionName(arg1, arg2, ...) { statements }
-
嚴格模式中...
- 函數名不能為eval或arguments
- 參數名不能為eval或arguments
- 不能出現兩個命名參數同名的情況
-
在函數體內可以通過arguments對象訪問參數數組,從而獲取傳遞給函數的每一個參數。
function sayHi() { alert("Hello" + arguments[0] + "," + arguments[1]); }
可以利用這一特點讓函數接收任意個參數