iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JavaScript作用域编写提升的方法是什么
  • 542
分享到

JavaScript作用域编写提升的方法是什么

2024-04-02 19:04:59 542人浏览 安东尼
摘要

本篇内容主要讲解“javascript作用域编写提升的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript作用域编写提升的方法是什么”吧

本篇内容主要讲解“javascript作用域编写提升的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript作用域编写提升的方法是什么”吧!

提升什么?

把变量与函数的声明移到编写所处作用域的最上面,叫作提升。

如下代码:

console.log(name); // undefined
var name = 'Rewa Fang';
console.log(name); // Rewa Fang

第一次打印name时,输出undefined而不是抛出异常ReferenceError。 正是因为变量name声明被提升了。 但只提升声明,赋值不会提升;所以输出undefined。 第二次打印时,name已经被赋值为Rewa Fang

提升后的代码:

var name;
console.log(name); // undefined
name = 'Rewa Fang';
console.log(name); // Rewa Fang

代码改成下面这种写法也是可正常执行的:

name = 'Rewa Fang';
console.log(name); // Rewa Fang 
var name;

var name; 会被提升到最上面。

这是因为编译器在编译阶段会找到代码中所有的声明,并绑定在对应的作用域中。而赋值和其它逻辑代码会留在原地;等待执行。 比如: var a = 1; 会被编译器看作两个部分声明var a;和赋值a = 1; ,那么声明会提升到作用域最上面,赋值则在原地等执行。

包含函数声明也会提升。

函数声明提升
sayHi(); // Hello!
function sayHi(){
    console.log('Hello!');
}

函数sayHi()可以正常执行;因为函数声明的部分被提升了。提升为:

function sayHi(){
    console.log('Hello!');
}
sayHi(); // Hello!

函数内部的变量和函数也会提升至函数最上面:

var name = 'Lebron James';
sayHi(); // Hello! Rewa Fang
function sayHi(){
    name = 'Rewa Fang';
    console.log('Hello! '+name);
    var name;
}

函数内的name会提升至函数创建的作用域最上面,所以函数内部不会引用到外部name。 内部的name遮蔽了外部变量name。

提升后:

function sayHi(){
    var name;
    name = 'Rewa Fang';
    console.log('Hello! '+name);
}
var name;
name = 'Lebron James';
sayHi(); // Hello! Rewa Fang

提升后有一个变化,就是函数声明会优先于变量提升。

比如:

console.log(sayHi);
var sayHi = 'Lebron James';
function sayHi(){
    console.log('Hello! ');
}

结果会输出:ƒ sayHi(){console.log('Hello! ');} node环境下输出:[Function: sayHi]

why ?

为什么需要提升?

有以下原因:

  • 优化性能; 编译器在代码运行前进行编译会预先处理变量和函数的声明,统一管理作用域。保持代码由上而下的顺序变量在引用之前声明。 不过代码的顺序是可以人为控制的,像Java不需要提升开发者可以有效地管理好变量的声明。 所以这可能并不是最重要的提升原因,也可能是个历史遗留问题。

  • 函数间的相互调用; 如下代码,如果函数b没有提升; 函数a中调用就会抛出异常;提升就可以让函数式编程变得更灵活。

     function a (){
        var a = 1;
         return b(a);
     }
     function b(num){
        return num * 2;
     }

PS: es6中 let const 不会被提升

到此,相信大家对“JavaScript作用域编写提升的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: JavaScript作用域编写提升的方法是什么

本文链接: https://www.lsjlt.com/news/85437.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript作用域编写提升的方法是什么
    本篇内容主要讲解“JavaScript作用域编写提升的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript作用域编写提升的方法是什么”吧...
    99+
    2024-04-02
  • JavaScript函数与作用域的使用方法是什么
    本篇内容介绍了“JavaScript函数与作用域的使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • Javascript的作用域和作用域链是什么
    这篇文章主要介绍Javascript的作用域和作用域链是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Javascript 的作用域和作用域链作用域: 作用域是定义变量...
    99+
    2024-04-02
  • 什么是JavaScript作用域
    本篇内容介绍了“什么是JavaScript作用域”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在JavaS...
    99+
    2024-04-02
  • javascript中什么是作用域
    这篇文章给大家介绍javascript中什么是作用域,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.可以处理表单,检验用...
    99+
    2023-06-14
  • JavaScript作用域链是什么
    本篇内容介绍了“JavaScript作用域链是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!作用域1....
    99+
    2024-04-02
  • JavaScript中方法的作用是什么
    这期内容当中小编将会给大家带来有关JavaScript中方法的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.什么是方法定义并调用一个常规函数:functio...
    99+
    2024-04-02
  • javascript中作用域指的是什么
    javascript中作用域指的是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在javascript中,作用域是变量(对象、函数)的...
    99+
    2024-04-02
  • 提升Flutter体验的方法是什么
    本篇内容主要讲解“提升Flutter体验的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“提升Flutter体验的方法是什么”吧!目标过度的丢帧从视觉上会出现卡顿现象,体现在用户滑动操作...
    99+
    2023-06-04
  • React状态提升的方法是什么
    今天小编给大家分享一下React状态提升的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.介绍所谓 状态提升 就...
    99+
    2023-07-06
  • JavaScript函数提升指的是什么
    这篇文章主要介绍了JavaScript函数提升指的是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript函数提升指的是什么文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • JavaScript中的声明提升是什么
    这篇文章主要讲解了“JavaScript中的声明提升是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中的声明提升是什么”吧!声明提升(hosting)是 JavaSc...
    99+
    2023-07-04
  • Java编写HelloWorld的方法是什么
    这篇文章主要介绍了Java编写HelloWorld的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java编写HelloWorld的方法是什么文章都会有所收获,下面我们一起来看看吧。1.Java开发中...
    99+
    2023-06-03
  • javascript中save()方法的作用是什么
    本篇内容介绍了“javascript中save()方法的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • JavaScript里push方法的作用是什么
    这篇文章主要介绍“JavaScript里push方法的作用是什么”,在日常操作中,相信很多人在JavaScript里push方法的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • JavaScript 中方法链的作用是什么
    本篇文章给大家分享的是有关JavaScript 中方法链的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。方法链的例子在处理字符串时有...
    99+
    2024-04-02
  • JavaScript中some方法的作用是什么
    JavaScript中some方法的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器...
    99+
    2023-06-14
  • JavaScript实现跨域的方法是什么
    今天小编给大家分享一下JavaScript实现跨域的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • JavaScript循环的简写方法是什么
    小编给大家分享一下JavaScript循环的简写方法是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JavaScript循环简写方法简写:for(letind...
    99+
    2023-06-27
  • linux应用程序的编写方法是什么
    Linux应用程序的编写方法可以分为以下几个步骤:1. 选择编程语言:Linux支持多种编程语言,如C、C++、Python、Jav...
    99+
    2023-09-22
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作