JavaScript 核心觀念(63) - ES6 章節:Let 及 Const - Let 及 Const - 課後練習

前言

接下來又來到了課後練習的部分,接下來所有練習一樣是建議仔細想過一次之後再看答案。

第一題

請問以下將會出現何者訊息

1
2
3
4
5
a();

let a = function() {
console.log('a');
}
  1. a
  2. ReferenceError
  3. undefined
  4. SyntaxError
點我看解答(請認真思考後再看解答)

答案是:「2」

匿名表達函式是無法在宣告之前就被呼叫的,因此是會出現錯誤的。

第二題

課程上我們了解到 let 會有暫時性死區問題,所以不能在變數宣告建立之前使用該變數,那 const 呢?

1
2
3
console.log(a);

const a = 'Casper';
  1. Casper
  2. undefined
  3. ReferenceError
  4. SyntaxError
點我看解答(請認真思考後再看解答)

答案是:「3」

ES6 語法不論是 let 或是 const 都會有暫時性死區的問題存在。

第三題

同前面幾題,如果我們接下來將 console.log() 移至後方會得什麼?

1
2
let a;
console.log(a);
  1. ReferenceError
  2. undefined
  3. a
  4. SyntaxError
點我看解答(請認真思考後再看解答)

答案是:「2」

如果 let 沒有被賦予值,那麼預設將會指向到 undefined 這個預設值。

第四題

同上題,若改成 const 呢?

1
2
const a;
console.log(a);
  1. SyntaxError
  2. ReferenceError
  3. undefined
  4. 以上皆非
點我看解答(請認真思考後再看解答)

答案是:「1」

const 是必須被賦予一個預設值的,否則會出現 SyntaxError 錯誤。

第五題

請問 console.log() 將會出現什麼?

1
2
3
const array = [];
array.push('Casper');
console.log(array);
  1. ReferenceError
  2. SyntaxError
  3. []
  4. ['Casper']
點我看解答(請認真思考後再看解答)

答案是:「4」

const 雖然是不可變的常數,但是如果是物件或者是陣列的話,修改裡面的值或者是屬性並不會有太大影響,因為變數在指向時,是指向記憶體位置,而我們並沒有修改記憶體位置(替換成新的陣列或者新的物件)。

第六題

請問 console.log() 結果是什麼?

1
2
3
4
5
6
7
let a = 10;
function fu() {
console.log(a);
let a = 20;
}

fu();
  1. 20
  2. 10
  3. SyntaxError
  4. ReferenceError
點我看解答(請認真思考後再看解答)

答案是:「4」

ES6 的宣告變數語法也會有提升,但是會是使用暫時性死區取代,因此無法在宣告之前呼叫該變數。

第七題

請問以下 console.log() 將會出現什麼?

1
2
3
4
5
6
7
8
9
10
function fu() {
}

fu.fu = 'QQ';

const a = fu;

a.fu = 'Casper';

console.log(a.fu);
  1. QQ
  2. Casper
  3. undefined
  4. ReferenceError
點我看解答(請認真思考後再看解答)

答案是:「2」

這一題主要考的觀念是使用 const 之後是否可以修改物件中的屬性。

第八題

本課程講師老師建議要學好 ES6 的話應該要選擇什麼 ESLint Style?

  1. Airbnb
  2. Standard
  3. Google
點我看解答(請認真思考後再看解答)

答案是:「1」

主要原因在於 Airbnb 風格會要求你使用 ES6 語法撰寫。

第九題

開發上建議會使用 ESLint 統一風格,避免出現團隊開發時各寫各的而導致無法維護程式碼

  1. 不對
點我看解答(請認真思考後再看解答)

答案是:「1」

每個開發者都有屬於開發者的撰寫習慣,因此使用 ESLint 統一撰寫風格是比較好的。

第十題

如果公司本身若不喜歡使用 ESLint 也可以依照公司 Code Style 來撰寫

  1. 不對
點我看解答(請認真思考後再看解答)

答案是:「1」

參考文獻

Liker 讚賞 (拍手)

如果這一篇筆記文章對你有幫助,希望可以求點支持或 牡蠣 鼓勵 (ノД`)・゜・。

Liker 是一個按讚(拍手)的讚賞機制,每一篇文章最多可以按五下(拍手),按讚過程你是完全不用付費的(除非你想要每個月贊助我 :D),你只需要登入帳號就可以開始按讚。
而 Liker 會依據按讚數量分配獎金給創作者,所以如果你願意按個讚我會非常感謝你唷。

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ