zl程序教程

您现在的位置是:首页 >  前端

当前栏目

javascript中变量提升的问题详解编程语言

JavaScript变量编程语言 问题 详解 提升
2023-06-13 09:11:43 时间

javascript (es5之前,es6中不存在变量提升)中存在两种变量提升机制。

1.用var声明变量时,变量的声明会提升到js的顶部(注意是声明提前而不包括赋值)。所以console.log(x);var x = 2;时并不会报错而是输出undefined

javascript中变量提升的问题详解编程语言

,这个相当于var x;console.log(x);x=2;因为变量提升所以x的声明被提到console.log之前。但是赋值不会提前,所以输出undefined,而不是2.而如果没有声明直接console.log(x);则会报错,因为x不存在。

javascript中变量提升的问题详解编程语言

2.用function定义函数时,存在变量提升。所以x();function x(){console.log( xxxx )}是可以正常运行的,

javascript中变量提升的问题详解编程语言

因为函数x有变量提升,会提升到顶部,于是函数便正常运行了。但是对于用函数表达式声明的函数,如var x = function(){console.log( xx )}则不会进行变量提升,于是在x();var x = function(){console.log( xxx )}时会报错,

javascript中变量提升的问题详解编程语言

显示x is not a function因为表达式定义的函数不会变量提升就报找不到函数的错误了。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16602.html

cjava