Javascript基礎系列 表示式和運算子

2021-09-24 08:27:48 字數 1788 閱讀 1025

// 直接量

1.23

"hello"

/pattern/

// 保留字

true

false

null

this

// 變數

isum

undefined

複製**

var fn = function(x)

複製**

new object()

new point(2,3)

複製**

1+2  // 3

"1"+"2" //"12"

"1"+2 // "12"

1+{} // "1[object object]"

true+true // 2

2+null // 2

2+undefined // nan

複製**

無符號右移(>>>):和運算子一樣,只是左邊的高位總是填補0,與原來的運算元符號無關。

個人理解:將兩個運算元都轉換為字串可以比較的時候就不需要再進行向下轉換。否則最終是需要轉換為數字進行比較

function copy(o,p) // 如果向引數p沒有傳入任何物件,則使用乙個新建立的物件

}複製**

!(p && q) === !p || !q

!(p || q) === !p && !q

複製**

x             typeof

undefined "undefined"

null "object"

true或false

"boolean"

任意數字或nan "number"

任意字串 "string"

任意函式 "function"

任意內建物件(非函式) "object"

複製**

var o = 

delete o.x

"x"in o // false

var a = [1,2,3]

delete a[2]

2 in a; //false 第三個索引也就是2不存在了

a.length // 3 :陣列長度並沒有改變,刪除後操作留下了乙個"洞",實際上並沒有修改陣列的長度,因此a陣列的長度仍然是3

複製**

var o =  // 定義乙個變數,初始化為物件

delete o.x // 刪除乙個物件屬性,返回true

typeof o.x // 屬性不存在 返回"undefined"

delete o.x // 刪除不存在的屬性,返回true

delete o // 不能刪除通過var宣告的變數,返回false

// 在嚴格模式下,將丟擲乙個異常

delete 1; // 引數不是乙個左值 返回true

this.x = 1; // 給全域性物件定義乙個屬性,這裡沒有使用var

delete x; // 試圖刪除它 在非嚴格模式下返回true

// 在嚴格模式下會丟擲異常,這時使用"delete this.x"來代替

x // 執行時錯誤 沒有定義x

複製**

Javascript基礎系列 陣列

var a new array 複製 var a new array 10 複製 var a new array 5,4,3,test 複製 a 1,2,3 delete a 1 a在索引1的位置不再有元素 1 in a false 陣列索引1並未在陣列中定義 a.length 3 delete操作...

JavaScript系列 ECMAScript語句

1 if語句 if語句語法 if condition statement1 else statement2 2 迭代語句 迭代語句又叫迴圈語句,宣告一組需要反覆執行的命令,直到滿足了某些條件為止。ecmascript為了這種處理提供了四種迭代語句。2.1 do while語句 do while語句是...

JavaScript系列 Date物件

建立乙個新的date物件 var odate new date 上面 建立出的時間物件是執行這段 時瞬間的系統時間。方法描述 odate.getfullyear 返回四位數的年份 如 2013 odate.getyear 根據瀏覽器的不同返回兩位或者四位數的年份,因此不推薦使用 odate.getm...