变量提升: 提升变量的声明。

函数声明式: 像这种形式: 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 结果

最新文章

  1. PHP图片裁剪类
  2. webdriverAPI-Java
  3. Unity 3D
  4. 会话控制:session与cookie
  5. 降维技术---PCA
  6. Run same command on all SQL Server databases without cursors
  7. Unity2D 背景图铺满与Camera.Size的计算公式
  8. Linux unzip解压文件到某个目录下面
  9. spring实战四之Bean的自动装配(注解方式)
  10. javascript笔记——前端实现分页和查询
  11. mysql颠覆实战笔记(六)--商品系统设计(三):商品属性设计之固定属性
  12. javascript Array类型 方法大全
  13. C语言初学 if-else语句判断俩数的最大值
  14. 利用Javamail接收QQ邮箱和Gmail邮箱(转)
  15. OVS + dpdk 安装与实验环境配置
  16. hset和hget
  17. SharePoint 2007 文档库中的文档添加评论功能
  18. java date HHmmss hhmmss
  19. Github访问速度慢和下载慢的解决方法
  20. CSU 1684-Disastrous Downtime

热门文章

  1. Caravel–一款开源OLAP+数据可视化分析前端工具,支持Druid和Kylin
  2. IP通信基础学习第四周(下)
  3. Oarcle之单行函数(上)
  4. Linux的邮件服务器配置
  5. javascript声明变量
  6. 认识volatile的工作原理
  7. iOS进阶之使用 NSURLProtocol 拦截 HTTP 请求(转载)
  8. vue 异步刷新页面,
  9. 第五次编程作业-Regularized Linear Regression and Bias v.s. Variance
  10. 设计的一些kubernetes面试题目