欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js變量提升深入理解

 更新時(shí)間:2016年09月16日 12:41:45   投稿:jingxian  
下面小編就為大家?guī)硪黄猨s變量提升深入理解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

JavaScript的函數(shù)定義有個(gè)特點(diǎn),它會(huì)先掃描整個(gè)函數(shù)體的語句,把所有申明的變量“提升”到函數(shù)頂部:

'use strict';

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

雖然是strict模式,但語句var x = 'Hello, ' + y;并不報(bào)錯(cuò),原因是變量y在稍后申明了。但是alert顯示Hello, undefined,說明變量y的值為undefined。這正是因?yàn)镴avaScript引擎自動(dòng)提升了變量y的聲明,但不會(huì)提升變量y的賦值。

對(duì)于上述foo()函數(shù),JavaScript引擎看到的代碼相當(dāng)于:

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

由于JavaScript的這一怪異的“特性”,我們在函數(shù)內(nèi)部定義變量時(shí),請(qǐng)嚴(yán)格遵守“在函數(shù)內(nèi)部首先申明所有變量”這一規(guī)則。最常見的做法是用一個(gè)var申明函數(shù)內(nèi)部用到的所有變量:

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

以上這篇js變量提升深入理解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript indexOf函數(shù)使用說明

    javascript indexOf函數(shù)使用說明

    JavaScript中indexOf函數(shù)方法是返回 String 對(duì)象內(nèi)第一次出現(xiàn)子字符串的字符位置。
    2008-07-07
  • 介紹一個(gè)簡單的JavaScript類框架

    介紹一個(gè)簡單的JavaScript類框架

    這篇文章主要介紹了一個(gè)簡單的JavaScript類框架,有助于初學(xué)者理解JS類的創(chuàng)建與繼承,需要的朋友可以參考下
    2015-06-06
  • js數(shù)組的操作指南

    js數(shù)組的操作指南

    這篇文章主要介紹了js數(shù)組的操作指南的相關(guān)資料,需要的朋友可以參考下
    2014-12-12
  • JavaScript模塊詳解

    JavaScript模塊詳解

    這篇文章主要介紹了JavaScript模塊的用法以及語法基礎(chǔ),需要的朋友參考學(xué)習(xí)下吧。
    2017-12-12
  • 全面分析JavaScript 繼承

    全面分析JavaScript 繼承

    在JAVASCRIPT中,類的所有實(shí)例對(duì)象都是從同一個(gè)原型對(duì)象(父類)上繼承屬性,所以原型對(duì)象是類繼承機(jī)制的核心。或者是用戶自己定義的類,下面小編帶大家學(xué)習(xí)一下吧
    2019-05-05
  • javascript編程起步(第三課)

    javascript編程起步(第三課)

    javascript編程起步(第三課)...
    2007-02-02
  • 淺談JavaScript中setInterval和setTimeout的使用問題

    淺談JavaScript中setInterval和setTimeout的使用問題

    這篇文章主要介紹了淺談JavaScript中setInterval和setTimeout的使用問題,作者建議在任務(wù)龐大時(shí)盡量避免使用setInterval,需要的朋友可以參考下
    2015-08-08
  • JavaScript編程中的Promise使用大全

    JavaScript編程中的Promise使用大全

    這篇文章主要介紹了JavaScript中的Promise使用詳解,promise對(duì)象是JS進(jìn)階學(xué)習(xí)中的重要知識(shí)點(diǎn),需要了解的朋友可以參考下
    2015-07-07
  • javascript 中的事件委托詳解

    javascript 中的事件委托詳解

    這篇文章主要介紹了javascript 中的事件委托詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • DOM精簡教程

    DOM精簡教程

    DOM精簡教程...
    2006-10-10

最新評(píng)論