ctrl+~
node 當按名稱.js
,這樣就可以測試囉this,指向呼叫他的物件,這句話我咀嚼了很久,由於 Angular 有使用大量 this,所以我又去回顧了。基本上 this 是指向某個物件
「第一級公民」指的是你可以將函式存放在變數、物件以及陣列之中,同時,你也可以將函式傳遞到函式,或者由另一個函式來回傳它。 而且,函式具有屬性,因為它實際上是一個「物件」。
這些結構可以根據功能進一步分類:
鍵值對資料結構(Key-Value Pairs)
集合型資料結構(Value Collections)
目前理解為"object literal" ,指的是用大括號 {} 直接創建和初始化物件的語法形式。
定義:簡單來說就是執行參數的方法,但是參數不是一次處理完,而是一層一層的往下走,透過函式先執行第一個,往裡面之後,在透過另一個函式執行下一個參數,直到執行完畢
首先要函式裡面在包一次函式;隨後先給一半參數,另外一半之後在給它並且執行
一元正號運算子 會轉換型別
操作數型別 | 轉換結果 |
---|---|
number | 保持不變。 |
string | 嘗試將字串解析為數值。如果字串無法解析,則結果為 NaN。 |
boolean | true → 1,false → 0。 |
null | 轉換為 0。 |
undefined | 轉換為 NaN。 |
object 或 array | 先嘗試調用 valueOf(),若無法轉換,再調用 toString(),最終結果轉換為數值或 NaN。 |
白話就是說內部函式可以摳得到外部得變數,並且除存使用
指一個function是否依賴外部變數 如果不會就是pure,會就是非pure
拈花惹草就不pure,可以先這樣理解,但沒有好壞
不一次給全部參數,而是一次只給一部分參數得到新的function使用方法
CallBack又稱為回調、回函、回呼函式,光是這個翻譯就看不懂了,在這邊我將CallBack的定義解釋為:在某一函式執行時或執行後,依條件或依序去執行所傳遞進來的函式。
一個程式執行完再去執行另一個程式
1、讓函式成為另一個函式的參數
2、讓函式控制參數函式的執行時機
可以向伺服器傳送及取得資料,並且不需要重新整理瀏覽器畫面,這樣可以大幅提升使用者體驗並且減少伺服器負擔
cotinue
break
已宣告變數未定義就會跳undefined
型別沒有成功轉型為數值 無法計算就會跳出NaN
有意而為之 想讓變數是空值
如果用typeof
檢查會發現跳出object 這是null成年舊bug 已不可動搖
也是function 差別
它產生出來得會是字串,如果想要數字可運算那就寫在一起 ${num+num} like this
插值表達式
使用${}語法將變量或表達式嵌入到字符串中:
多行字符串
樣板字面值可以直接換行,不需要使用轉義字符:
嵌入表達式
可以在樣板字面值中嵌入任意的JavaScript表達式:
嵌套樣板字面值
你可以在樣板字面值中嵌套樣板字面值:
樣板字面值中的函數調用
可以在樣板字面值中調用函數:
樣板字面值中的條件式
可以使用條件表達式來動態構建字符串:
樣板字面值中的數組或對象
你也可以使用樣板字面值來處理數組或對象:
可以使用 funtion 當模板字串
call by value
++i:i 的值會增加 1,並且立即返回更新後的值。
一句話總結:先更新,後返回新值。
i++:i 本身的值確實會增加,但返回的值是增加前的原本值。
用一句話說就是:返回舊值,更新新值。
這是js模組,會引想一些語法,比方我遇到得給使用者輸入值得部份
指電腦語言中添加的某種語法,這種語法對語言的功能沒有影響,但是更方便程式設計師使用。語法糖讓程式更加簡潔,有更高的可讀性。
間單來說就是把右邊想同數量得值傳給左邊相等數量得值
ex. main()
只要看到這個 不管是否有參數 都是一種呼叫方式
兩者都能中斷程式碼執行,那是不是用哪個都沒差呢?
先說 return ,只能在 function 中使用,用來回傳值並中斷 function 執行。
回傳值。
如果沒寫會回傳 undefined。
再來是 throw,任何地方都能用,用來拋出例外並中斷程式碼執行。在瀏覽器會用紅色來呈現例外。
不能單獨使用,一定要丟出東西,不然會出錯。
最後來整理一下:
兩者都能中斷程式碼。
return 只能在 function 中使用, throw 沒限制。
return 後面可以不用寫值, throw 後面一定要有值。
key:value
這是一個靜態方法,因為
保護你的物件,位物件設立開關
特性 | Object.defineProperty() | Object.defineProperties() |
---|---|---|
定義屬性數量 | 一次只定義一個屬性 | 一次定義多個屬性 |
是否細化屬性行為 | 可以細化(writable, enumerable 等) | 可以細化每個屬性行為 |
調用複雜度 | 適合單一屬性操作 | 適合大量屬性設置 |
如果第一位為" "字串,那整串都會變字串
let x = "5" + 2 + 3
求出523let x = 2 + 3 + "5"
求出55let index = text.indexOf("locate",15);
(/Cats/gi)
會全選可以理解為陣列排序工具
total是計算機,當沒有任何相加得情況下回船會是第一個數值,也就是45
value是迭代,它會在數值中跑,跑到最後一位就停了,照上面最後一位也就是25
index代表值得數量,如上方number,總共有五位,但是計算方式是第一位為0,第二位是1,以此類推,所以會得出4。如果是在相加時,它計算方式就會變成0+1+2+3+4(依照值得數量,以此類推)
array代表得是顯示數值,回傳會是45, 4, 9, 16, 25
所以根據上面return total + value;
就可以得知算式=45+4+16+25=99
如果是return total + index;
就會是=45+0+1+2+3+4=55
如果是return value + index;
它就會使用迭代,過程中參數都會相加,但是只會取最後相加得值=45+0=45,4+1=5,9+2=11,16+3=19,25+4=29所以可以得知最終回傳是29
? 直接判斷 true false ,不能寫throw Error
bigint(9999999999999999)
,也可以在數字後面加上n=9999999999999999n
Number(new Date("1970-01-01"))
,以1970-01-01基準點=0,加一天就是[246060*1000毫秒]=86400000如果要轉換js格式為json,就要用json.stringify
json.parse = 將字串轉換為js物件
json.stringify = 將一個JavaScript 物件或值轉換為JSON 字串
Json.stringify這裡J大寫得原因,是因為這是一個建構子,就類似Object.value
如果只有fetch("https://jsonplaceholder.typicode.com/users")
那就是預設GET
這是用來檢查原型鍊源頭
stopPropergation:阻止冒泡事件得其中一個方法
preventDefault:阻止冒泡事件得其中一個方法
Chris:
看到表單,第一個要先想象他是物件,處理標資料形態,甚至要想象它是什麼型別,,這object是什麼欄位,而欄位是什麼型別
getter setter 活用版本
原生只會處理畫面,要清除資料要另外
SPA AJAX AXIOS Router 都有異曲同工之妙,主軸是用於在使用者切換頁面時,不刷新整個頁面的情況下更新顯示的內容。它的主要目的是提供更順暢的用戶體驗,並模擬傳統網站的頁面導航行為。