国产探花免费观看_亚洲丰满少妇自慰呻吟_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變量提升深入理解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清河县| 静安区| 宁阳县| 凯里市| 马龙县| 新昌县| 九龙城区| 来凤县| 淄博市| 淮北市| 满城县| 凌云县| 伊春市| 黔南| 仙桃市| 濉溪县| 汾阳市| 蒲江县| 江西省| 赤峰市| 青田县| 铜陵市| 喀喇沁旗| 通化县| 东台市| 土默特左旗| 佳木斯市| 盐城市| 涟源市| 松阳县| 峡江县| 大关县| 泸溪县| 大渡口区| 安顺市| 塔城市| 玉屏| 温宿县| 平塘县| 如东县| 准格尔旗|