JavaScript核心

兩個都是access object property的方式,唯一不同的是bracket notation允許我們使用變數。

該來稿穩基本盤了

程式語言的本質就是給電腦下一連串的指令來產出我們想要的結果,我們常用更專業性的講法來稱呼這些指令 — statement

一支JavaScript code通常就是由無數個statement所組成,而statement是由Values、Operators、Expression、Keywords、Comments所組成。

什麼?你說不太確定statement跟exprssion有啥區別?

JavaScript語法對statement和expression是有區分的,他們有些微差異但如果想使用像Vue等框架就必須搞懂他們。

Expression : 一段可以產出某個值的程式,以下全都是expression:

Statement : 一段可以執行某項動作的程式,以下全都是statement:

這很重要逆

程式語言主要能分成兩大類 : static languagedynamic language

Static language的變數在宣誓時就必須明確指定他的變數類型,且之後無法改變,Dynamic language則不需要再宣告時指定他的變數類型,而且他會在運行時根據賦予的值動態更改變數類型。

JavaScript就是動態語言的實現,這樣設計有好有壞,好處是方便,壞處是難以檢查數值類型容易造成錯誤,所以越來越多人使用相對嚴謹的TypeScript。

簡單來說就是兩個大括號中間的內容會有屬於自己的scope

有趣的是if、for keyword裡的中括號也算在大括號裡面的scope。

老是會忘記他們叫什麼

各種小知識

JavaScript是一種非常熱門的程式語言,被廣泛使用在網頁應用中,不過很久以前他還只能存在於瀏覽器中,功能也只是替網站提供互動效果,甚至有不少人把他戲稱為Toy Language,後來是經由廣大的社群、大企業支持才致使他走到今天的地位。

JavaScript原本設計為只能在瀏覽器運行,每個瀏覽器都有屬於自己的JavaScript Engine,像是Chrome的V8、Firefox的SpiderMonkey,後來有個天才叫Ryan Dahl用C++把V8 engine包起來創造出了Node.js,這個創舉使我們能在瀏覽器外部使用JavaScript,用JavaScript構建後端也成為了可能。

總結 : JavaScript的運行環境有2個,瀏覽器、Node.js。

有個叫ECMA的組織弄出了個叫ECMAScript的規範,JavaScript是按照該規範實做出來的語言。2015時ECMAScript搞了一個大更新,許多新功能被釋出,我們簡稱這個版本為ES2015/ES6。

JavaScript能用<script></script>來加載,而且我們絕大部分都會放在elemet之後,原因有以下兩點 :

  1. 如果放在element之前,瀏覽器會先執行一大堆JavaScript,影響elment render速度,造成使用者體驗不佳。
  2. JavaScript會有大量跟element互動的情況,element還沒render,JavaScript也無法動作,放在底部能確保所有element都已render結束。

有些library需要把js放在<head></head>,但這只是極少數例外,絕大多數情況都建議放在<body></body>底部。

另外還有一些載入模式能無視位置,這些只適用於external script

黃金體驗

當你定義一個變數時,那個變數只會存在你定義的scope內,如果你嘗試從scope外去讀取他,那是找不到的。

JavaScript找尋變數的方式會從目前的scope開始,再到parent scope,最後到達root scope,所以定義在外部的變數是可以在內部被讀取的。

我們不一樣

function foo(){
...
}
  1. 會Hoisting
  2. 不會被丟進垃圾車
let foo = function(){
...
}
  1. 不會Hoisting
  2. 可能會進垃圾車

yellow

Wow amazing

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store