JavaScript ÌáÉý£¨Hoisting£©

ÌáÉý£¨Hoisting£©ÊÇ JavaScript ½«ÉùÃ÷ÒÆÖÁ¶¥²¿µÄĬÈÏÐÐΪ¡£

JavaScript ÉùÃ÷»á±»ÌáÉý

ÔÚ JavaScript ÖУ¬¿ÉÒÔÔÚʹÓñäÁ¿Ö®ºó¶ÔÆä½øÐÐÉùÃ÷¡£

»»¾ä»°Ëµ£¬¿ÉÒÔÔÚÉùÃ÷±äÁ¿Ö®Ç°Ê¹ÓÃËü¡£

Àý×Ó 1 ÓëÀý×Ó 2 µÄ½á¹ûÏàͬ£º

Àý×Ó 1

x = 5; // °Ñ 5 ¸³Öµ¸ø x
 
elem = document.getElementById("demo"); // ²éÕÒÔªËØ
elem.innerHTML = x;                     // ÔÚÔªËØÖÐÏÔʾ x

var x; // ÉùÃ÷ x

Ç××ÔÊÔÒ»ÊÔ

Àý×Ó 2

var x; // ÉùÃ÷ x
x = 5; // °Ñ 5 ¸³Öµ¸ø x

elem = document.getElementById("demo"); // ²éÕÒÔªËØ
elem.innerHTML = x;                     // ÔÚÔªËØÖÐÏÔʾ x

Ç××ÔÊÔÒ»ÊÔ

ΪÁËÀí½âÕâÒ»µã£¬Äú±ØÐëÀí½âÊõÓï "hoisting"¡£

Hoisting ÊÇ JavaScript ½«ËùÓÐÉùÃ÷ÌáÉýµ½µ±Ç°×÷ÓÃÓò¶¥²¿µÄĬÈÏÐÐΪ£¨ÌáÉýµ½µ±Ç°½Å±¾»òµ±Ç°º¯ÊýµÄ¶¥²¿£©¡£

let ºÍ const ¹Ø¼ü×Ö

Óà let »ò const ÉùÃ÷µÄ±äÁ¿ºÍ³£Á¿²»»á±»ÌáÉý£¡

ÇëÔÚ JS Let / Const ÖÐÔĶÁ¸ü¶à¹ØÓÚ let ºÍ const µÄÄÚÈÝ¡£

JavaScript ³õʼ»¯²»»á±»ÌáÉý

JavaScript Ö»ÌáÉýÉùÃ÷£¬¶ø·Ç³õʼ»¯¡£

Àý×Ó 1 ÓëÀý×Ó 2 µÄ½á¹û²»Ïàͬ£º

Àý×Ó 1

var x = 5; // ³õʼ»¯ x
var y = 7; // ³õʼ»¯ y

elem = document.getElementById("demo"); // ²éÕÒÔªËØ
elem.innerHTML = x + " " + y;           // ÏÔʾ x ºÍ y

Ç××ÔÊÔÒ»ÊÔ

Àý×Ó 2

var x = 5; // ³õʼ»¯ x
 
elem = document.getElementById("demo"); // ²éÕÒÔªËØ
elem.innerHTML = x + " " + y;           // ÏÔʾ x ºÍ y
 
var y = 7; // ³õʼ»¯ y 

Ç××ÔÊÔÒ»ÊÔ

×îºóÒ»¸öÀý×ÓÖÐµÄ y ÈÔÈ»ÊÇ䶨ÒåÄÜ˵µÃͨÂð£¿

ÕâÊÇÒòΪֻÓÐÉùÃ÷£¨var y£©¶ø²»Êdzõʼ»¯£¨=7£©±»ÌáÉýµ½¶¥²¿¡£

ÓÉÓÚ hoisting£¬y ÔÚÆä±»Ê¹ÓÃǰÒѾ­±»ÉùÃ÷£¬µ«ÊÇÓÉÓÚδ¶Ô³õʼ»¯½øÐÐÌáÉý£¬y µÄÖµÈÔÊÇ䶨Òå¡£

Àý×Ó 2 Ò²Ò»Ñù£º

ʵÀý

var x = 5; // ³õʼ»¯ x
var y;     // ÉùÃ÷ y
 
elem = document.getElementById("demo"); // ²éÕÒÔªËØ
elem.innerHTML = x + " " + y;           // ÏÔʾ x ºÍ y
 
y = 7;    // °Ñ 7 ¸³Öµ¸ø y

Ç××ÔÊÔÒ»ÊÔ

ÔÚ¶¥²¿ÉùÃ÷ÄúµÄ±äÁ¿£¡

Hoisting£¨¶ÔºÜ¶à¿ª·¢ÕßÀ´Ëµ£©ÊÇ JavaScript µÄÒ»ÖÖδ֪µÄ»ò±»ºöÊÓµÄÐÐΪ¡£

Èç¹û¿ª·¢Õß²»Àí½â hoisting£¬³ÌÐòÒ²Ðí»á°üº¬ bug£¨´íÎ󣩡£

ΪÁ˱ÜÃâ bug£¬ÇëʼÖÕÔÚÿ¸ö×÷ÓÃÓòµÄ¿ªÍ·ÉùÃ÷ËùÓбäÁ¿¡£

ÓÉÓÚÕâ¾ÍÊÇ JavaScript ½âÊÍ´úÂëµÄ·½Ê½£¬Çë±£³ÖÕâ¸öºÃϰ¹ß¡£

ÑϸñģʽÖÐµÄ JavaScript ²»ÔÊÐíÔÚδ±»ÉùÃ÷µÄÇé¿öÏÂʹÓñäÁ¿¡£

ÇëÔÚÏÂÒ»ÕÂѧϰ¡°use strict¡±¡£

VUE