續前篇~接續脫稿(目錄)演出,來一波 JS ~ 下篇再回到原本軌道繼續未完的 CSS 人生……
一連串的處理、一群指令的集合。
function functionName(參數1, 參數2...) {
... 執行內容
return 回傳值 (非必要)
}
function(參數1, 參數2...) {
... 執行內容
return 回傳值 (非必要)
}
var total = function() {
...
}
(function() {
...
})()
function myFunction(x) {
return x
}
console.log(myFunction)
// 印出整個function code
console.log(myFunction(2))
// 印出function回傳值
function show(text){
console.log(text)
}
寫法1 : (參數)=>(回傳值)
宣告 函數名稱 (參數1,參數2) => ( 回傳值 )
宣告 函數名稱 參數1 => ( 回傳值 )
宣告 函數名稱 () => ( 回傳值 )
寫法2 : (參數)=>{涵式內容}
宣告 函數名稱 (參數1,參數2) => {
涵式內容
...}
例1:
var show = (text) =>{
console.log(text)
}
例2 (內裡匿名涵式):
setTimeout(()=> {
console.log('text')
}),1000);
先使用變數才宣告 var 時,不會噴錯、能順利執行但是變數會 = undefined
console.log(num)
var num=1 // 是"undefined"、不是"Error"也不是1
其他示例
// 先使用變數再let宣告與賦值
console.log(num1)
let num1=1
// Uncaught ReferenceError: Cannot access 'num1' before initialization
// 先使用變數再var宣告與賦值
console.log(num2)
var num2=1
// undefined
// 先使用變數才賦值但無宣告
console.log(num3)
num3=2
// Uncaught ReferenceError: num3 is not defined
// 先使用變數才var宣告但無賦值
console.log(num4)
var num4
// undefined
// 先使用變數才let宣告但無賦值
console.log(num5)
let num5
// Uncaught ReferenceError: Cannot access 'num5' before initialization
var | let | const | |
---|---|---|---|
意義 | 宣告變數 | 宣告變數 | 宣告常數 |
宣告時 | 可以先不指定值 | ← (同var) | 必須指定值 |
宣告後 | 可再次指定值 | ← (同var) | 不可改變值 |
宣告後 | 可再次宣告 | 不可再次宣告 | 不可再次宣告 |
範例 | var x var x = 2 |
← (同var) | const PI=3.14159 |
Scope作用域 | 該涵式區塊 | 該程式區塊{大括號內}包含迴圈/判斷 | ← (同let) |
print=(content)=>{
console.log(content)
}
for(var i=0 ; i<5 ; i++){
print(i) //成功取得 i (=1、2、3、4)
}
print(i) //成功取得 i (=5)
function test(){
for(var i=0 ; i<5 ; i++){
print(i) //成功取得 i (=1、2、3、4)
}
}
print(i) //無法取得 i
for(let i=0 ; i<5 ; i++){
print(i) //成功取得 i (=1、2、3、4)
}
print(i) //無法取得 i
關於 let / var / const 作用域也是 Junior 工程師滿常見的面試考題嘿!這篇寫的不夠完整嗎?再多 google 幾篇讀讀各種解釋,並直接邊寫 JS 邊 try 結果來理解它們的差異性吧!
參考資料:
個人 Blog: https://eudora.cc/
晃過來又發現被 cue 了 XD 大部份的理解蠻不錯的,整理的也很好,加油!
是說匿名函式可以直接執行喔。像這樣:
(function(x) {
console.log(x);
})(100)
一定要Cue一下的 XD
感謝泰安老師補充,立馬補回文章矣~
好哦,會加油 der!希望順利寫完(深呼吸)
加油!