JS無法直接被電腦運行,需透過解譯

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/997bed4d-a19d-41a6-8c0b-e80b936b526a/1565659766947.jpg

JS結構化網站

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d35c3d6b-ed98-4931-b7b4-8ca93037294a/1565662538117.jpg

LHS錯誤會直接顯示出來

JS執行時遇到錯誤沒有除錯,程式碼會停止運行不會在往下跑

LHS錯誤: .click()屬於執行涵式,無法在被賦予值

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b269290d-75d0-4329-8c07-77f986b88fbd/1565770909636.jpg

⇒修正

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/54ed88df-0003-4724-ae71-617392ab0f3e/1565771002129.jpg

語法作用域

JS屬於靜態作用域

靜態作用域 : 變數的作用域在語法解析時,就已經確定作用域,且不會再改變。

涵式定義時就已經決定結果不會受到其他影響(sayHi值以為老爸 不再受影響)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7199ac1a-3f13-42b7-97a7-a7f2bdece227/1565771315091.jpg

動態作用域 : 變數的作用域在涵式調用時才決定。

作用域需要變數時,function內找不到,會直接向外查找,如果都找不到時會顯示ReferenceError...

執行環境

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ddc22dcc-7991-4843-84a0-609d270c17e5/1565663589722.jpg

在window開啟時會產生全域的執行環境,但this會隨著執行環境有所不同

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6486b880-ffec-4b82-a3df-cbd6c91330bb/1565664420258.jpg

宣告涵式在還沒運行時,並不會產生執行環境