cy
宣告一個函式 定義物件屬性及方法的藍圖
可使用extends繼承類別
如果子類別 (sub-class) 有定義自己的constructor,必須在 constructor 方法中使用super(),來調用父類別的 constructor,否則會出現錯誤,只能在子類別中使用。
const
宣告的常數不可變更也不得為空,且無法重複宣告
陣列因為是物件參考(reference type)
指向的記憶體位置不能變,但是內容可變更
錯誤範例:
正確使用:
var | let |
---|---|
可重複宣告 | 不能重複宣告 |
範圍在function內 | 範圍在區塊(if/for..)內 |
初始值undefined | 沒給值會error |
省略var會被認定為全域變數,可用window這個變數來取得最上層的全域物件
window.variable
盡量使用Let來宣告變數
後的符號可以跳離原先的身份 變成單純地表示用符號
0.1+0.2=0.30000000000000004
(因為2進位10進位換算,2進位小數有問題)
利用*10000(變成整數)之後再做運算 最後/10000來解決
JavaScript 提供 if 結構和 switch 結構,完成條件判斷,即只有滿足預設的條件,才會執行相應的陳述句。
先判斷一個運算式的布林值,然後根據布林值的真偽,執行不同的陳述句。 所謂布林值,指的是JavaScript 的兩個特殊值 true 表示真,false 表示 假。
if 代碼塊後面,還可以跟一個 else 代碼塊,表示不滿足條件時,所要執行的代碼。
多個 if…else 連在一起使用的時候,可以轉為使用更方便的 switch 結構。
JavaScript 還有一個三元運算符(即該運算符需要三個運算子)?:,也可以用於邏輯判斷。
in
會自動跳過陣列內的空值而 of
不會,需加入以下片段來判斷
break
和 continue
都具有跳轉作用,可以讓代碼不按既有的順序執行
break
陳述句用於跳出代碼塊或迴圈(while/if..)上面只會執行10次迴圈,一旦 i 等於 10,就會跳出迴圈
continue
陳述句用於跳過本輪迴圈上面只有在 i 為奇數時,才會輸出 i 的值; 如果 i 為偶數,則直接進入下一輪迴圈
如果存在多重迴圈,不帶參數的 break
和 continue
陳述句都只針對最內層迴圈
= : 傳值
== : 值一樣就好
=== : 值和型態都要一樣
undefined == "undefined", 0, NULL, 空集合
undefined === "undefined"
NaN不等於任何東西,包含自己(NaN != NaN)
Math.random() 隨機0-1的數字
Math.round() 四捨五入
Math.floor() 取小於這個數的最大整數(取高斯)
Math.ceil() 取大於這個數的最小整數(取上高斯)
let 陣列名稱 = [] new Array();
push(value)
pop()
shift()
unshift(value)
splice()
foreach()
map()
filter()
concat()
sort()
return的值是TRUE就進行a,b互換,FALSE則不換
stack vs queue
stack | queue |
---|---|
FILO | FIFO |
傳統
精簡
更精簡
'use strict'
嚴格模式,宣告在文件或函式開頭
this
的值為全域物件,嚴格模式下為 undefined
;this
的值為被呼叫函式的所屬物件;this
的值為新建立的物件;箭頭函式:
bind:
嚴格模式:
寫網頁 截圖對照網頁&程式的變化