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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:26:37
字體:
供稿:網(wǎng)友

一、變量提升

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

上個簡歷的例子如:

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

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

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

二、函數(shù)提升

js中創(chuàng)建函數(shù)有兩種方式:函數(shù)聲明式和函數(shù)字面量式。只有函數(shù)聲明才存在函數(shù)提升!如:

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

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

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

結(jié)語:基本上就是這樣,要熟練掌握的話可以多做些練習,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的變量提升和函數(shù)提升(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持錯新站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 吴江市| 民乐县| 赣州市| 马龙县| 宜宾市| 江川县| 海口市| 华宁县| 当阳市| 鹿泉市| 永兴县| 宜都市| 方山县| 南靖县| 武邑县| 龙胜| 周至县| 永安市| 兴和县| 安多县| 南召县| 墨江| 青岛市| 白银市| 石城县| 南川市| 黎平县| 贵南县| 彭阳县| 通江县| 海阳市| 梁河县| 洪江市| 永州市| 格尔木市| 开化县| 枝江市| 禹城市| 东宁县| 洪湖市| 普安县|