0%

浮點數

在日常生活中,如果要計算 0.1 + 0.2,我們能夠直覺的答出 0.3 這個答案。
但是在 JavaScript 中,計算結果卻不如預期,用 console.log(0.1 + 0.2 === 0.3) 回傳的結果竟會得到 false
其實這和電腦的「IEEE754 二進制浮點運算」計算方式有關,當我們宣告一段浮點數陣列,展開後會發現,有些浮點數會有些微誤差,以致於在進行計算時會出錯。
所以得到的結果自然是 0.1 + 0.2 !== 0.3

1
2
3
4
5
var num = Array.from(Array(10).keys())
var result = num.map(item => item * 0.1)
console.log(result)
// 0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5,
// 0.6000000000000001, 0.7000000000000001, 0.8, 0.9
閱讀全文 »

this 是什麼

this 是 JavaScript 的一個關鍵字,函式執行時自動生成的一個內部物件,用來呼叫自身擁有的屬性或值。

1
2
3
4
5
function fn () {
console.log(this)
debugger
}
fn() // window
閱讀全文 »

Promise 是用來解決 AJAX 非同步問題,優化非同步程式的 ES6 語法,會回傳「接受」或「拒絕」的結果。

AJAX 是 JavaScript 與 XML 技術的縮寫,網頁不用重新整理,就能即時透過瀏覽器跟伺服器溝通、撈取資料。
1
2
3
4
5
function promise(num) {
return new Promise((resolve, reject) => {
num ? resolve(num) : reject('失敗')
})
}
閱讀全文 »

Callback Function

Callback Function 和一般函式沒有什麼不同,差別在於被呼叫執行的時機。
JavaScript 是一個「事件驅動」的程式語言,也就是說每段程式都必須滿足一定的驅動條件,才會啟動執行程式。

閱讀全文 »

讓函式擁有自己的變數,使執行環境不會互相干擾。


我們都知道閉包,但什麼是必包?主要功能是什麼呢?
先從字面上拆解,Closure 可以拆成 Close-ure 字尾,-ure 接在動作的字根後面,表示動作本身、動作造成的結果、或是執行動作的人事物。
所以閉包本身就是一個關閉的動作,把程式碼片段關閉在一個函式內,限制作用域,建立自己的環境與外界隔絕。

閱讀全文 »