js語法專題二

1.運算符

減法、除法和乘法運算符,都是將字符串自動轉爲數值,然後再運算。

2.&和||

&它的運算規則是:如果第一個運算子的布爾值爲true,則返回第二個運算子的值(注意是值,不是布爾值);如果第一個運算子的布爾值爲false,則直接返回第一個運算子的值,且不再對第二個運算子求值。

||它的運算規則是:如果第一個運算子的布爾值爲true,則返回第一個運算子的值,且不再對第二個運算子求值;如果第一個運算子的布爾值爲false,則返回第二個運算子的值。

if(i) { doSomething();}     // 等價於

i && doSomething();

3.類型轉換

parseInt('42 cats')// 42

Number('42 cats')// NaN

使用Number函數,可以將任意類型的值轉化成數值。比parseInt轉換範圍寬,但也更加嚴格。

String({a: 1}) // "[object Object]"
String([1, 2, 3]) // "1,2,3"

4.報錯類型

4.1 SyntaxError 對象

SyntaxError對象是解析代碼時發生的語法錯誤。

// 變量名錯誤
var 1a;
// Uncaught SyntaxError: Invalid or unexpected token

// 缺少括號
console.log 'hello');
// Uncaught SyntaxError: Unexpected string

4.2 ReferenceError 對象

// 使用一個不存在的變量
unknownVariable
// Uncaught ReferenceError: unknownVariable is not defined
// 等號左側不是變量
console.log() = 1
// Uncaught ReferenceError: Invalid left-hand side in assignment

// this 對象不能手動賦值
this = 1
// ReferenceError: Invalid left-hand side in assignment

4.3 RangeError 對象

RangeError對象是一個值超出有效範圍時發生的錯誤。主要有幾種情況,一是數組長度爲負數,二是Number對象的方法參數超出範圍,以及函數堆棧超過最大值。

// 數組長度不得爲負數
new Array(-1)
// Uncaught RangeError: Invalid array length

4.4 TypeError 對象

TypeError對象是變量或參數不是預期類型時發生的錯誤。比如,對字符串、布爾值、數值等原始類型的值使用new命令,就會拋出這種錯誤,因爲new命令的參數應該是一個構造函數。

new 123
// Uncaught TypeError: number is not a func

var obj = {};
obj.unknownMethod()
// Uncaught TypeError: obj.unknownMethod is not a function

4.5 debugger

可以直接在代碼中寫debugger,頁面sources直接定位到相應位置,更加便捷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章