javascript中变量提升的问题详解编程语言
2023-06-13 09:11:43 时间
javascript (es5之前,es6中不存在变量提升)中存在两种变量提升机制。
1.用var声明变量时,变量的声明会提升到js的顶部(注意是声明提前而不包括赋值)。所以console.log(x);var x = 2;时并不会报错而是输出undefined
,这个相当于var x;console.log(x);x=2;因为变量提升所以x的声明被提到console.log之前。但是赋值不会提前,所以输出undefined,而不是2.而如果没有声明直接console.log(x);则会报错,因为x不存在。
2.用function定义函数时,存在变量提升。所以x();function x(){console.log( xxxx )}是可以正常运行的,
因为函数x有变量提升,会提升到顶部,于是函数便正常运行了。但是对于用函数表达式声明的函数,如var x = function(){console.log( xx )}则不会进行变量提升,于是在x();var x = function(){console.log( xxx )}时会报错,
显示x is not a function因为表达式定义的函数不会变量提升就报找不到函数的错误了。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16602.html
cjava相关文章
- 【原创】JavaScript中的变量和常量
- JavaScript 自执行函数防止冲突全局作用域变量 - 在线客服源码实现弹窗效果JavaScript SDK
- JavaScript 框架大战已结束,赢家只有一个
- JavaScript学习总结(二十)——Javascript非构造函数的继承详解编程语言
- JavaScript学习总结(五)——Javascript中==和===的区别详解编程语言
- javascript判断变量是否为空的方法详解编程语言
- javascript escape、encodeURI、encodeURIComponent详解编程语言
- MySQL与JavaScript结合,实现卓越前端开发(jsmysql)
- JavaScript入门教程(8)Location地址对象
- Asp.net页面调用javascript变量的值
- javascript弹出窗口window.open使用方法以及参数说明分析篇
- javascript对象之内置对象Math使用方法
- JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
- JavaScript代码简单实现求杨辉三角给定行的最大值
- Javascript中引用示例介绍
- Javascript单元测试框架QUnitjs详细介绍
- JavaScript定义变量和变量优先级问题探讨
- 使用Chrome调试JavaScript的断点设置和调试技巧
- javascript操作符(~、&、|、^、<<、>>)使用案例