iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

直譯

而直譯器是一行一行直接翻譯執行。
每翻譯一行程式敘述就立刻執行,然後再翻譯下一行,再執行,所以直譯器可即時翻譯、執行。
像是JavaScript、還有PHP、Ruby、Python

  • 彈性較高


(圖片來源:六角學院)

(圖片來源:六角學院)

編譯

編譯是透過「編譯器」在程式執行前將高階語言編譯成機器語言。
簡單的來說編譯就是”翻譯一下程式碼”
像是C、C++、C#、Java 等….

  • 效能較好


(圖片來源:六角學院)

(圖片來源:六角學院)

創造&執行


(圖片來源:六角學院)

var value = 1;
function v1() {
}
function v2() {
  var value = 2;
  v1();
}
v2();
console.log(value);

A:1 (語法作用域時) JS ✅
A:2 (動態作用域時) ❎


(圖片來源:六角學院)

例 ❶

function fn1() {
  console.log('小明');
}
fn1();

↑ 結果相同 都是輸出:小明 ↓

fn1();
function fn1() {
  console.log('小明');
}

例 ❷

function fn1() {
  console.log('小明1');
}
var fn1 = function fn1() {
  console.log('小明2');
}
fn1();

↑ 結果相同 都是輸出:小明2 ↓

var fn1 = function fn1() {
  console.log('小明2');
}
function fn1() {
  console.log('小明1');
}
fn1();

下一篇 hoisting GO ->


上一篇
暫時性死區 TDZ
下一篇
hoisting 提升
系列文
JavaScript亂記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言