Javascript — 第05天
Day 05 主題
- 作用域Scope
- 條件Javascript Conditionals
-三元運算子Ternary operator
-switch - ES5 & ES6
-BABEL - var / let /const
- 樣板字面值Template literals(樣板字串Template strings)
— backtick(`) - 箭頭函式Arrow Function
Javascript 是靜態 lexical scope.
作用域Scope
//Root Scope (window)
function something() {
//child scope
console.log("I'm in somehting.");
}
全域作用域Global scope
當地作用域Local Scope
- 函式作用域function scope
- 區塊作用域block scope
作用域鏈Scope Chain
var str = 'hey001'
a()
function a() {
var str = 'hey002'
b()
}
function b() {
var str = 'hey003'
console.log(str)
}
和詞法環境( Lexical Environment)有很大的關係。
總的來說,
這就是有關你的作用域位置,和程式碼目前執行在哪裡。
Javascript Conditionals
三元運算子Ternary Operator
Syntax overview
condition ? exprIfTrue : exprIfFalse
Example |
function areUValid (bool) {
return bool;
}
var answer = areUValid(true) ? "You are verified" : "Access Denied"
more info | Here
Switch
function rpgGame(commands) {
var events;
switch (commands) {
case "forward":
break;
events = "hit by apples";
case "left":
events = "hit on a wall";
break;
case "right":
events = "a monster chases you";
break;
case "back":
events = "a bunch of monsters chase you";
break;
default:
events = "Please enter a valid direction";
}
return events;
}
ES5 & ES6
ECMAScript === Javascript
BABEL
- 一個javascript 編譯器
- 讓你寫的 javascript 更容易被各瀏覽器相容
別用 var 了
容易造成讓人混淆的情況
let
可以被assign更新的值
const
不可以被assign更新的值
你不能改變const的值,
但你可以做以下
樣板字面值Template literals
使用Backtick(和波浪~在同一個鍵)
箭頭函式Arrow Function
more info | here
