Javascript 变量提升
来源:互联网 发布:聚类分析法要编程 编辑:程序博客网 时间:2024/06/05 17:38
先来看一个例子:
var tmp = "hello javascript";function f() { console.log(tmp); var tmp = "hello world";}f();console.log(tmp);
上面代码最终运行结果如下:
undefinedhello javascript
是不是很诧异,按道理应该两次log都是”hello javascript”,这是因为变量提升了,在函数里声明的所有变量都被提升至函数体前面,上面函数f()相当于:
function f() { var tmp console.log(tmp); tmp = "hello world";}
所以第一次log会输出undefined。所以函数体内变量赋值或者初始化要放在最前面。
把函数f()修改下,重新运行。
function f() { console.log(tmp); tmp = "hello world";}
运行结果为
hello javascripthello world
因为 tmp = “hello world” 没有初始化,当在函数体内给一个变量赋值时不加 var 修饰符则自动升级该变量为全局变量,此时最后面的console.log(tmp)
会输出hello world
0 0
- javascript变量声明提升
- javascript 变量/函数 提升
- javascript变量声明提升
- JavaScript变量提升示例
- JavaScript变量提升-Hoisting
- JavaScript变量声明提升
- Javascript变量提升解释
- JavaScript 变量声明提升
- Javascript变量提升(Hoisting)
- javascript变量声明提升
- JavaScript之变量提升
- javaScript的变量提升
- javascript之变量提升
- Javascript变量提升(Hoisting)
- JavaScript 变量提升
- Javascript 变量提升
- JavaScript--变量提升
- javaScript变量提升?
- 缓存应用中的错误模式
- 2017,快乐
- PostgreSQL 9.5 连接redis及其使用
- git命令-切换分支
- android适配不同分辨率的手机
- Javascript 变量提升
- datapager控件分页
- easyui中datagrid单元格实现字数超限显示省略号的效果总结
- 记录phantomjs学习(一)
- maven核心,pom.xml详解
- COCOS2DX在Android Studio环境下的部署-迁移及开发
- AF断点下载和计算下载速度
- 【机器学习实验】scikit-learn的主要模块和基本使用
- has(),contains(),[],[][]方法