美文网首页码农的世界程序员
JS面试知识点 变量提升

JS面试知识点 变量提升

作者: 100273de9b5c | 来源:发表于2018-11-26 11:30 被阅读11次

变量提升,也可以说成是变量声明提升,是指在Javascript中变量的声明会被提到作用域的顶部,而变量的赋值留在原地,具体我们可以看看下面这个问题:

Q : 下面的这段代码执行结果是什么?

var a = 1;

function test(){

console.log(a);

var a = 2;

}

test();

如果你至今还不知道什么是变量提升,你可能会认为在函数test外部已经声明并赋值了a=1,

那么函数内部第一行的log结果应该就是 1 。那我们把代码复制进浏览器看看结果吧:

输出结果为 undefined

其实,按照本文上面对变量提升的说明,也就不难理解了,实际代码运行的顺序应当是这样的:

var a = 1;

function test(){

var a; //声明被提前

console.log(a);

a = 2; //赋值留在原地

}

test();

值得一提的是:如果把变量声明的关键字 var 换成 let ,则会出现一个如下的错误:

VM515:3 Uncaught ReferenceError: a is not defined

你理解了吗?

在这里提出另一点思考,如果我把代码稍作修改:

var a = 1;

function test(){

console.log(a);

a = 2;

}

test();

结果会是怎样呢?

如果有正在学web前端的小伙伴,可来我们的学习扣qun哦:86772,6593里面免费送视频教程。小编也是一名从事了5年web前端开发的工程师,花了近一个月整理了一份较适合18年学习的干货,以及我这五年的工作经验,分享给每一位想学web前端的小伙伴,这里是web前端学习者聚集地,欢迎初学和进阶中的小伙伴。

相关文章

  • JS面试知识点 变量提升

    变量提升,也可以说成是变量声明提升,是指在Javascript中变量的声明会被提到作用域的顶部,而变量的赋值留在原...

  • 第11题- 变量提升和函数提升

    面试题目(腾讯): 下面题目输出结果是什么? 答案解析: 这道题目主要考察JS的变量提升和函数提升相关的知识点 1...

  • 帮大家总结一下js变量提升的面试题

    帮大家总结一篇面试题,针对js变量提升这个知识点总结了9道题,如果你都能做出来并且能做对的话变量提升这一块就没问题...

  • 变量声明提升

    变量声明提升是JS中一个基础的问题,同时也是对JS词法作用域认识的一个提升。在JS面试题中,关于变量声明提升的问题...

  • JavaScipt常见面试题收录

    一. 1.一道常被人轻视的前端JS面试题考察知识点 : 变量提升,this指针指向,运算符优先级,原型,继承,全局...

  • 昨天js变量提升题面试题(答案及解释)

    昨天总结的针对js变量提升这个知识点总结了9道题,下面是给大家做出的答案和解释: 总结: 关于变量提升,一定要注意...

  • 值得一看的文章--面试可能用得到

    js系列 js面试题 : 本文全面考察了: 变量名提升、this作用域链、运算符优先级、全局变量名污染已经对象属性...

  • JS需要注意的内容

    最近学生面试比较多,关于JS部分的常见面试问题,做一个简单的总结 1.变量提升 JS里的很多代码规则和C,Java...

  • JS中的提升

    JS中包含两种提升,变量提升和函数提升。 变量提升 变量提升只能是var或者function声明的变量或者函数,l...

  • JS 中 var a 与非 var a 的区别

    前段时间开始了JS的学习,第一个重要的知识点就是变量声明及变量声明提升。关于变量声明,有这样两种代码: var a...

网友评论

    本文标题:JS面试知识点 变量提升

    本文链接:https://www.haomeiwen.com/subject/rnovqqtx.html