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

首頁 > 編程 > JavaScript > 正文

基于js的變量提升和函數提升(詳解)

2019-11-19 15:25:30
字體:
來源:轉載
供稿:網友

一、變量提升

在ES6之前,JavaScript沒有塊級作用域(一對花括號{}即為一個塊級作用域),只有全局作用域和函數作用域。變量提升即將變量聲明提升到它所在作用域的最開始的部分。

上個簡歷的例子如:

console.log(global); // undefinedvar global = 'global';console.log(global); // globalfunction fn () {console.log(a); // undefinedvar a = 'aaa';console.log(a); // aaa}fn();

之所以會是以上的打印結果,是由于js的變量提升,實際上上面的代碼是按照以下來執行的:

var global; // 變量提升,全局作用域范圍內,此時只是聲明,并沒有賦值console.log(global); // undefinedglobal = 'global'; // 此時才賦值console.log(global); // 打印出globalfunction fn () {var a; // 變量提升,函數作用域范圍內console.log(a);a = 'aaa';console.log(a);}fn();

二、函數提升

js中創建函數有兩種方式:函數聲明式和函數字面量式。只有函數聲明才存在函數提升!如:

console.log(f1); // function f1() {}  console.log(f2); // undefined function f1() {}var f2 = function() {}

只所以會有以上的打印結果,是由于js中的函數提升導致代碼實際上是按照以下來執行的:

function f1() {} // 函數提升,整個代碼塊提升到文件的最開始<br>console.log(f1);  console.log(f2);  var f2 = function() {}

結語:基本上就是這樣,要熟練掌握的話可以多做些練習,test:

console.log(f1()); console.log(f2);  function f1() {console.log('aa')}var f2 = function() {}
(function() {console.log(a);a = 'aaa';var a = 'bbb';console.log(a);})();

以上這篇基于js的變量提升和函數提升(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东台市| 潜江市| 罗源县| 离岛区| 漳浦县| 渝北区| 德钦县| 富源县| 专栏| 邵武市| 疏勒县| 左权县| 民县| 藁城市| 井研县| 杂多县| 巴彦淖尔市| 徐闻县| 金乡县| 盱眙县| 清涧县| 高尔夫| 安宁市| 商洛市| 盐亭县| 阿荣旗| 洪泽县| 镇平县| 金平| 常熟市| 筠连县| 郁南县| 祥云县| 包头市| 桐柏县| 铜川市| 平阳县| 江永县| 金坛市| 读书| 达州市|