數據類型web
六種數據類型:安全
numberapp
string函數
boolean優化
nullthis
undefinedspa
objectprototype
隱式轉換:code
巧用+和-
orm
num-0 轉換爲數字
num+'' 轉換爲字符串
===
null===null
undefiend=undefined
NaN ≠ NaN
new Object ≠ new Object
類型比較轉換原則
字符串轉數字
布爾轉數字
對象轉基本類型
包裝對象:
三種包裝類型
number
string
boolean
能夠調用對象屬性
設置屬性不生效,能夠使用new 對象()
類型檢測:
typeof
基本類型和function
[[Class]]
Object.prototype.toString.apply(變量)
獲取內置對象的基元類型 [Object Date],[Object Array],[Object Object]
instanceof
判斷對象是否屬於某個類
表達式和運算符
表達式: 能計算出值得程序單元
原始表達式
初始化表達式
函數表達式
屬性訪問表達式
調用表達式
對象建立表達式
運算符:
賦值
算術
字符串
比較
邏輯
位
特殊
條件運算符
逗號運算符
delete
in
instanceof
typeof
new
this
void
語句
函數,for...in,with:
函數定義方式
函數聲明 任何地方可調用
函數表達式 後面才能調用
for...in
順序不肯定
enumerable 爲false不出現
受原型鏈影響
with
傳入對象,在塊語句中能夠把屬性當變量使用
讓js引擎優化更難
try-catch:
try
嘗試執行
出現一個異常就退出try
catch
捕捉和處理異常
throw
自定義異常
1
|
throw
'未定義'
;
|
finally
最終執行,確定會執行
感受意義不大
示例
1
2
3
4
5
6
7
|
try
{
console.log(str);
}
catch
(err){
console.log(err);
} finally {
console.log(
'finally'
);
}
|
嚴格模式:
做用
語法更合理,更嚴謹
提供更強的錯誤檢查,提供安全性
使用方式 'use strict'
放在文件頭部
放在函數中
使用範圍
不容許with
不容許 delete 函數參數
不容許8進制字面量
eval,arguments變爲關鍵字,不能作變量