大家都知道js 分为词法阶段 和执行阶段

也知道它是因为var变量和函数声明会提升

但是你知道他们两个谁先提升的吗

测试一下

function test(){
alert(4);
} var test; console.log(test);

//输出了 test这个函数体

//奥  原来 是函数提升 先于变量提升

//因为声明同名变量的时候是不会覆盖之前的声明的 只有赋值的时候才会被覆盖

//如果test提升先于函数  那么就会输出undefined

//由此你明白了吧  函数声明先于变量声明!!!

 

如果这样 测试  不管谁提升在前  都会输出test  因为提升在前 赋值在后  赋值会覆盖之前的声明!!!

接下来稍微改一下就知道谁声明在前了

最新文章

  1. Unity3D之C# yield waitforseconds
  2. 【HDU1730】Northcott Game(Nim问题)
  3. 烂泥:apache密码生成工具htpasswd的应用
  4. isPowerOfTwo
  5. 一:ZooKeeper简介
  6. iOS 原生地图 开发
  7. struct和typedef struct在c++中的用法
  8. Java8的一些新特性
  9. google浏览器插件推荐
  10. DVWA 黑客攻防演练(十四)CSRF 攻击 Cross Site Request Forgery
  11. 使用yum源的方式单机部署MySQL8.0.13
  12. [20171031]rman xxx Failure.txt
  13. IIS发布的网站常见的问题汇总
  14. POJ3468(线段树区间求和+区间查询)
  15. 2015.09.16 SCADA系统介绍及应用
  16. Sum It Up---poj1564(dfs)
  17. 编码 Unicode utf-8
  18. 自定义Cell的流程
  19. cf837D(01背包)
  20. asp概述

热门文章

  1. 云服务器 linux文件系统异常an error occurren during the file system check导致服务器启动失败
  2. mysql多线程插入速度与不同数据库之间的比较
  3. WAP网页中点击链接直接拨打电话的方法
  4. pytest十一:函数传参和 firture 传参数 request
  5. linux常用软件安装,常用命令
  6. LeetCode 4. Median of Two Sorted Arrays (分治)
  7. POJ 2385 Apple Catching【DP】
  8. jquery attr方法和prop方法获取input的checked属性问题
  9. python全栈开发day38-css三种引入方式、基础选择器、高级选择器、补充选择器
  10. Codeforces 286B Shifting (看题解)