4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

js ホイスティング(巻き上げ)について

Posted at

jsを触っていると、ホイスティング(巻き上げ)というものが出てきたので
まとめる。

ホイスティング

 console.log(v)
 console.log(l)
 console.log(c)

 var v = 1
 let l = 2
 const c = 3

//→結果
// Uncaught ReferenceError: Cannot access 'l' before initialization

// ここでvがエラーにならないのは、varはホイスティングしているからです。vはundefinedとして処理されます。
// もしも、変数vのundefinedがどこかで使わるなら大問題になりかねないですね。定義していないのに、使われるわけですから
// その予防策としてletなどを使用するようにしましょう。多分これがvar非推奨の要因なんでしょうな。







// 関数はホイスティングする
Hos()
//動く
HosClass()
//動かずエラーになる

function Hos(){
  var test = 1
  console.log(test)
}
// クラスはホイスティングしない
class HosClass {
  constructor(test){
    this.test = 'testt'
  }
  // var test = 1
  //変数を定義してもエラーになります。
  //なので、クラスを使った際に、変数定義で変な値が入ることはないとこと思われます。
}

var 巻き込みあり
let 巻き込みなし
const 巻き込みなし
function(関数) 巻き込みあり
class(クラス) 巻き込みなし

基本は、巻き込みなしのletを使用する。
constも巻き込みなしなので、使用OK.

関数を使用する際には注意かな。
関数定義を書く前に、関数の使用をするとスルーされてしまうのでご注意を!!!

巻きこみ

自分の中での巻き込みは、
「ダウンタウンのガキの使いやあらへんで !! 体育館で24時間鬼ごっこ !」の
浜田だけカップ麺をあんまり食べさせてくれない時に、巻き込んだシーン!
いやそれは、巻き込み!
今は巻き上げ!

覚えた!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?