參考:https://software.intel.com/en-us/blogs/2012/11/30/calculating-a-bearing-between-points-in-location-aware-apps
- Mar 21 Thu 2019 19:58
-
[JavaScript] 根據經緯度計算與正北方向的夾角,以順時針為方向的角度
根據經緯度計算與正北方向的夾角,以順時針為方向的角度
參考:https://software.intel.com/en-us/blogs/2012/11/30/calculating-a-bearing-between-points-in-location-aware-apps
參考:https://software.intel.com/en-us/blogs/2012/11/30/calculating-a-bearing-between-points-in-location-aware-apps
- Mar 07 Thu 2019 00:56
-
[JavaScript] 閉包 作用 / 生命週期
1. 使用函數內部的變數在函數執行完後,仍然存活在記憶體中(延長了區域變數的生命周期)
2. 讓函數外部可以操作(讀 / 寫)到函數內部的數據(變數 / 函數)
問題:
1. 函數執行完後,函數內部聲明的區域變數是否還存在?
-- 一般是不存在的,但如果是存在於閉包中的變數才可能存在
2. 在函數外部能直接訪問函數內部的區域變數嗎?
-- 不能,但可以通過閉包讓外部操作它
2. 讓函數外部可以操作(讀 / 寫)到函數內部的數據(變數 / 函數)
問題:
1. 函數執行完後,函數內部聲明的區域變數是否還存在?
-- 一般是不存在的,但如果是存在於閉包中的變數才可能存在
2. 在函數外部能直接訪問函數內部的區域變數嗎?
-- 不能,但可以通過閉包讓外部操作它
- Mar 06 Wed 2019 23:59
-
[JavaScript] 閉包 理解 / 常見的閉包
1. 如何產生閉包?
-- 當一個嵌套的內部(子)函數引用了嵌套的外部(父)函數的變數(函數)時,就產生了閉包
2. 閉包到底是什麼?
-- 使用chrome調試查看
-- 理解一: 閉包是嵌套的內部函數(絕大部分人)
-- 理解二: 包含被引用變數(函數)的對像(極少數人)
-- 注意: 閉包存在於嵌套的內部函數中
3. 產生閉包的條件?
-- 函數嵌套
-- 內部函數引用了外部函數的數據(變數 / 函數)
-- 執行外部函數
-- 當一個嵌套的內部(子)函數引用了嵌套的外部(父)函數的變數(函數)時,就產生了閉包
2. 閉包到底是什麼?
-- 使用chrome調試查看
-- 理解一: 閉包是嵌套的內部函數(絕大部分人)
-- 理解二: 包含被引用變數(函數)的對像(極少數人)
-- 注意: 閉包存在於嵌套的內部函數中
3. 產生閉包的條件?
-- 函數嵌套
-- 內部函數引用了外部函數的數據(變數 / 函數)
-- 執行外部函數
- Mar 06 Wed 2019 23:20
-
[面試] 奧丁丁
奧丁丁的面試紀錄
由奧丁丁主動找我面試的
原本看到應徵的是senior,而我一個完全沒有實務經驗的人,
一來先考試,40分鐘,題目如下(原考題是英文的),時間到了,但我沒寫完~~
1.給一個隨機排序的陣列 ([77, 54, 3, 10, 987, 105, 50]) , 請sort此陣列
2. 給一個字串"”Hello World",請reverse此字串
3.請描述打開網頁後會發生什麼事(
4.什麼是Promise
5.如果你是一個領導者,要怎樣和PM、前端、後端、
關於考題,是有一些用意的
前2題:確認我是不是會寫程式
3-4題:一些基本的觀念
第5題:公司實際的運作情況
接著就請我過去的工作經驗來自我介紹,接著說到培訓班開始,
因為我是轉職的工程師,主要問了一些業界對於轉職工程師的看法,
是不是本科系:現在的情況差距不會很大,
業界用人的標準:每間公司標準、需求都不同,
幾年的工作經驗: 每間公司標準、需求都不同,以奧丁丁來說,兩年只是一個期望值,
即戰力:這是每間公司都希望的,但實際上不太可能,
學習和實際應用的落差:我的問題是學的時候,
主管有介紹奧丁丁的工程師主要負責的部份,前端6位,
總之,這次的面試也是收穫很多,謝謝奧丁丁給我的機會。
面試結果:一週收到答覆!
- Mar 04 Mon 2019 22:10
-
[JavaScript] 變數提升 / 函數提升
1. 變數聲明提升 / 變數提升
-- 通過var定義(聲明)的變數,在定義語句之前就可以訪問到
-- 值:undefined
2. 函數聲明提升 / 函數提升
-- 通過function聲明的函數,在之前就可以直接調用
-- 值:函數定義(對象)
-- 通過var定義(聲明)的變數,在定義語句之前就可以訪問到
-- 值:undefined
2. 函數聲明提升 / 函數提升
-- 通過function聲明的函數,在之前就可以直接調用
-- 值:函數定義(對象)
- Mar 04 Mon 2019 01:31
-
[JavaScript] 原型鏈
1. 原型鏈
-- 訪問一個物件的屬性時,
---- 先在自身屬性中查找,找到返回
---- 如果沒有,再沿著__proto__這條鏈向上查找,找到返回
---- 如果最終沒找到,返回undefined
-- 別名: 隱式原型鏈
-- 作用: 查找物件的屬性(方法)
2. Function = new Function():實例對象才有隱式原型(屬性)__proto__,
而實例對象的隱式原型(屬性)__proto__ 等於 構造函數的顯式原型(屬性)prototype
3. 所有函數的隱式原型(屬性)__proto__都是一樣的
-- 訪問一個物件的屬性時,
---- 先在自身屬性中查找,找到返回
---- 如果沒有,再沿著__proto__這條鏈向上查找,找到返回
---- 如果最終沒找到,返回undefined
-- 別名: 隱式原型鏈
-- 作用: 查找物件的屬性(方法)
2. Function = new Function():實例對象才有隱式原型(屬性)__proto__,
而實例對象的隱式原型(屬性)__proto__ 等於 構造函數的顯式原型(屬性)prototype
3. 所有函數的隱式原型(屬性)__proto__都是一樣的
- Mar 03 Sun 2019 23:31
-
[JavaScript] 顯式原型 prototype 與 隱式原型 __proto__
1. 每個函數function都有一個prototype,即顯式原型(屬性)
2. 每個實例對像都有一個__proto__,可稱為隱式原型(屬性)
3. 對像的隱式原型的值為其對應構造函數的顯式原型的值
4. 總結:
-- 函數的prototype屬性:在定義函數時自動添加的,默認值是一個空Object實例對象
-- 物件的__proto__屬性:創建對像時自動添加的,默認值為構造函數的prototype屬性值
-- 程序員能直接操作顯式原型,但不能直接操作隱式原型(ES6之前)
2. 每個實例對像都有一個__proto__,可稱為隱式原型(屬性)
3. 對像的隱式原型的值為其對應構造函數的顯式原型的值
4. 總結:
-- 函數的prototype屬性:在定義函數時自動添加的,默認值是一個空Object實例對象
-- 物件的__proto__屬性:創建對像時自動添加的,默認值為構造函數的prototype屬性值
-- 程序員能直接操作顯式原型,但不能直接操作隱式原型(ES6之前)
- Mar 03 Sun 2019 22:21
-
[JavaScript] prototype 原型
1. 函數的prototype屬性
-- 每個函數都有一個prototype屬性, 它默認指向一個Object空物件(即稱為: 原型物件)
-- 原型對像中有一個屬性constructor, 它指向函數物件
2. 給原型對像添加屬性(一般都是方法)
-- 作用: 函數的所有實例對像自動擁有原型中的屬性(方法)
-- 原型上面的方法是給實例對象使用的
-- 每個函數都有一個prototype屬性, 它默認指向一個Object空物件(即稱為: 原型物件)
-- 原型對像中有一個屬性constructor, 它指向函數物件
2. 給原型對像添加屬性(一般都是方法)
-- 作用: 函數的所有實例對像自動擁有原型中的屬性(方法)
-- 原型上面的方法是給實例對象使用的
- Mar 03 Sun 2019 17:58
-
[JavaScript] 函數的this是什麼
- Mar 03 Sun 2019 17:16
-
[JavaScript] IIFE 匿名函數自調用
1. 理解
-- 全稱: Immediately-Invoked Function Expression 匿名函數自調用
2. 作用
-- 隱藏實現
-- 不會污染全域的命名空間
-- 用來編寫js模塊
-- 全稱: Immediately-Invoked Function Expression 匿名函數自調用
2. 作用
-- 隱藏實現
-- 不會污染全域的命名空間
-- 用來編寫js模塊
- Mar 03 Sun 2019 01:43
-
[JavaScript] callback function 回調函數
1. 什麼函數才是回調函數?
(1)我定義的
(2)我沒有調
(3)最終它執行了(在某個時刻或某個條件下)
2. 常見的回調函數?
-- DOM事件回調函數 ==> this:發生事件的DOM元素(用戶操作的元素)
-- 定時器回調函數 ==> this:window
-- ajax請求回調函數
-- 生命週期回調函數
(1)我定義的
(2)我沒有調
(3)最終它執行了(在某個時刻或某個條件下)
2. 常見的回調函數?
-- DOM事件回調函數 ==> this:發生事件的DOM元素(用戶操作的元素)
-- 定時器回調函數 ==> this:window
-- ajax請求回調函數
-- 生命週期回調函數
- Mar 03 Sun 2019 01:15
-
[JavaScript] 函數
1. 什麼是函數?
-- 具有特定實現功能的n條語句封裝體
-- 只有函數是可以執行的,其他類型的數據不能執行
2. 為什麼要用函數?
-- 提高code的重複使用率
-- 便於閱讀交流
3. 如何定義函數?
-- 函數聲明
-- 表達式
-- 具有特定實現功能的n條語句封裝體
-- 只有函數是可以執行的,其他類型的數據不能執行
2. 為什麼要用函數?
-- 提高code的重複使用率
-- 便於閱讀交流
3. 如何定義函數?
-- 函數聲明
-- 表達式