国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js變量提升深入理解

2019-11-20 08:59:38
字體:
來源:轉載
供稿:網友

JavaScript的函數定義有個特點,它會先掃描整個函數體的語句,把所有申明的變量“提升”到函數頂部:

'use strict';function foo() {  var x = 'Hello, ' + y;  alert(x);  var y = 'Bob';}foo();

雖然是strict模式,但語句var x = 'Hello, ' + y;并不報錯,原因是變量y在稍后申明了。但是alert顯示Hello, undefined,說明變量y的值為undefined。這正是因為JavaScript引擎自動提升了變量y的聲明,但不會提升變量y的賦值。

對于上述foo()函數,JavaScript引擎看到的代碼相當于:

function foo() {  var y; // 提升變量y的申明  var x = 'Hello, ' + y;  alert(x);  y = 'Bob';}

由于JavaScript的這一怪異的“特性”,我們在函數內部定義變量時,請嚴格遵守“在函數內部首先申明所有變量”這一規則。最常見的做法是用一個var申明函數內部用到的所有變量:

function foo() {  var    x = 1, // x初始化為1    y = x + 1, // y初始化為2    z, i; // z和i為undefined  // 其他語句:  for (i=0; i<100; i++) {    ...  }}

以上這篇js變量提升深入理解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西城区| 黄大仙区| 镶黄旗| 宁波市| 彭水| 怀集县| 那坡县| 邓州市| 土默特右旗| 景谷| 饶河县| 鄱阳县| 无棣县| 屏山县| 密山市| 大同市| 肃北| 钟祥市| 宜宾市| 中山市| 绥芬河市| 新巴尔虎右旗| 东兰县| 清涧县| 青田县| 涞源县| 舞阳县| 吴堡县| 安宁市| 八宿县| 恩施市| 呼玛县| 莲花县| 池州市| 莱芜市| 深州市| 浦北县| 高碑店市| 集贤县| 泰顺县| 丹江口市|