iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 17
1

有本書叫 You Don't Know JavaScript (YDKJS)

YDKJS

目前在拜讀當中,
另外想加強自己的JS,
所以來寫一些 I Don't Know JavaScript (IDKJS)


Hoisting

Hoisting is JavaScript's default behavior of moving declarations to the top. - W3school

  • Hoisting是JS預設的行為。
  • 宣告會被移到最頂端。

在JavaScript中變數可以在宣告前被使用。

console.log(x); //x is not defined

x 沒有被宣告,會跳出錯誤告訴你x未被定義。

var x = 0;
console.log(x); // 0 
console.log(y); // undefined
var y;

x有被宣告也有被賦值;
y在使用下方被宣告,但沒有賦值,所以是undefined

console.log(y); // undefined
var y = 1;

y 有被宣告也有被賦值,但console的結果是undefined
可以知道在JavaScript中,只有declaration會被 hoisting。


Const / Let

Const / Let的宣告方式是不會被hoisted的。

console.log(x); // x is not defined
const x = 0;
console.log(y); // y is not defined
let y;

use strict

在strict mode下不允許變數還沒被宣告時使用,

"use strict";
z = 0;
console.log(z); // z is not defined

但是一樣會有hoisting

"use strict";
console.log(z); // undefined
var z;


上一篇
[16] Less - Mixin、Nesting
下一篇
[18] IDKJS - Defined function
系列文
我在繡房繡小主常服的日子-- 初入前端工程師的第一個小挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言