Js 语言中 变量提升问题
2024-08-24 08:27:32
变量提升: 提升变量的声明。 函数声明式: 像这种形式: function foo() {}; 会发生变量提升。
函数表达式: var fn=function fn(){}; 不会发生变量提升。
var a = 1; 会将 a 的声明提升
a = 1; 等价于 window.a = 1;
代码解析:
function test() {
a = ;
log(a);
log(window.a);
var a = ;
log(a);
}
test(); 上面代码执行过程>>>>>>>
.将var 的变量提升声明 ,提升到当前的范围内最高作用域中,
此时a的声明被提升到function的作用域中(如不var:函数内的 a 会放到window下 : window.a = )
.赋值5 给a
.打印a 会出现5
.打印window.a 会出现undefined(为什么打印出undefined,因为最开始时将var 的变量声明提升到了当前的function作用域中)
.将 重新赋值给 a
.打印a 结果
最新文章
- PHP图片裁剪类
- webdriverAPI-Java
- Unity 3D
- 会话控制:session与cookie
- 降维技术---PCA
- Run same command on all SQL Server databases without cursors
- Unity2D 背景图铺满与Camera.Size的计算公式
- Linux unzip解压文件到某个目录下面
- spring实战四之Bean的自动装配(注解方式)
- javascript笔记——前端实现分页和查询
- mysql颠覆实战笔记(六)--商品系统设计(三):商品属性设计之固定属性
- javascript Array类型 方法大全
- C语言初学 if-else语句判断俩数的最大值
- 利用Javamail接收QQ邮箱和Gmail邮箱(转)
- OVS + dpdk 安装与实验环境配置
- hset和hget
- SharePoint 2007 文档库中的文档添加评论功能
- java date HHmmss hhmmss
- Github访问速度慢和下载慢的解决方法
- CSU 1684-Disastrous Downtime