JavaScript Hoisting
- Mwisho wa hivi karibuni JS mabomu
- Mbele ya hivi karibuni JS kwa kawaida
提升(Hoisting)是 JavaScript 将声明移至顶部的默认行为。
JavaScript 声明会被提升
在 JavaScript 中,可以在使用变量之后对其进行声明。
换句话说,可以在声明变量之前使用它。
例子 1 与例子 2 的结果相同:
例子 1
x = 5; // 把 5 赋值给 x elem = document.getElementById("demo"); // Kufafanisha kwa elementi elem.innerHTML = x; // 在元素中显示 x var x; // 声明 x
Tafadhali tafutie kwa mwenyewe
例子 2
var x; // 声明 x x = 5; // 把 5 赋值给 x elem = document.getElementById("demo"); // Kufafanisha kwa elementi elem.innerHTML = x; // 在元素中显示 x
Tafadhali tafutie kwa mwenyewe
为了理解这一点,您必须理解术语 "hoisting"。
Hoisting 是 JavaScript 将所有声明提升到当前作用域顶部的默认行为(提升到当前脚本或当前函数的顶部)。
JavaScript 初始化不会被提升
JavaScript 只提升声明,而非初始化。
例子 1 与例子 2 的结果不相同:
例子 1
var x = 5; // Kuanzisha x var y = 7; // 初始化 y elem = document.getElementById("demo"); // Kufafanisha kwa elementi elem.innerHTML = x + " " + y; // Kusadili x na y
Tafadhali tafutie kwa mwenyewe
例子 2
var x = 5; // Kuanzisha x elem = document.getElementById("demo"); // Kufafanisha kwa elementi elem.innerHTML = x + " " + y; // Kusadili x na y var y = 7; // 初始化 y
Tafadhali tafutie kwa mwenyewe
最后一个例子中的 y 仍然是未定义能说得通吗?
Iyana domin din bai da, kuma zai yin zai shenme (var y) sai kuma yin shu xian (=7) yin xuan wei dian.
由于 hoisting,y 在其被使用前已经被声明,但是由于未对初始化进行提升,y 的值仍是未定义。
Mfano 2 pia ni pamoja:
Mfano
var x = 5; // Kuanzisha x var y; // Kuharibifu y elem = document.getElementById("demo"); // Kufafanisha kwa elementi elem.innerHTML = x + " " + y; // Kusadili x na y y = 7; // Kusababisha 7 kwa y
Tafadhali uamua uharibifu wako kwenye kipimo cha kwanza!
Hoisting (kwa wengine wengi wa mtafiti) ni hatua ya JavaScript iliyotengwa ama inayotengwa na wengi.
Kwa sababu mtafiti hauona hoisting, programu inayoweza kuhatarisha kumekadiri.
Kuondoa mafanikio, tafadhali tuwe na uharibifu wote katika kuanzia mabomu.
Kwa sababu hii ni jinsi ya kufikiria kwa JavaScript kwa kusababisha kipya, tafadhali ufikirie habari hiyo kama kina.
JavaScript katika modi wa kawaida haaminwi kusababisha matumizi ya uharibifu kama ya uharibifu unaohatarishwa haukubaliana na yanarawa hii.
Tafadhali mtaarifu chapu izingine “use strict。”
- Mwisho wa hivi karibuni JS mabomu
- Mbele ya hivi karibuni JS kwa kawaida