变量声明前置:

所谓的变量声明前置就是在一个作用域块中,所有的变量都被放在块的开始出声明,下面举个例子你就能明白了

 var a = 1;
function main() {
console.log(a);//
}
main();//输出1

上面代码输出的是外层变量a的值

 var a = 1;
function main() {
console.log(a);
var a = 2;
}
main()//输出undefined

问什么这样就输出undefined呢?是因为脚本在执行的时候会自动将变量声明前置,解析成如下:

 var a = 1;
function main() {
var a;
console.log(a);
a = 2;
}

所以输出的是undefined。

小结:

  针对上述问题,我们在写javascript脚本时应该尽量将变量声明放在作用域的开始地方,这样就会避免上述问题了。

  有时候我们在开发时会遇到莫名其妙的问题,其实有些是我们并没有理解javascript的执行原理导致的,只有弄懂了,我们才能减少这样的错误,希望本文能够帮助你!

最新文章

  1. uva 10801(最短路)
  2. android中基于HTML模板的方式嵌入SWF
  3. android setLayoutParams 问题,出错
  4. 使用HttpFileServer自建下载服务器
  5. mysql 处理查询请求过程
  6. JS 省,市,区
  7. Mac 显示和隐藏 隐藏文件
  8. 从零开始完整Electron桌面开发(1)搭建开发环境
  9. AngularJS Boostrap Pagination Sample
  10. web开发工具类
  11. 实例源码--Android通讯录源码
  12. Xcode 常用编译选项设置
  13. Spring学习笔记(二)之装配Bean
  14. 配置web.xml文件用于配置tomcat
  15. .net core Entity Framework 与 EF Core
  16. arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)
  17. 如何在Asp.Net中使用JQueryEasyUI
  18. MAC oh-my-zsh
  19. 缓存服务—Redis
  20. cmake jni简说

热门文章

  1. shell关于日期的加减
  2. js 轮播插件
  3. RTX——第18章 内存管理
  4. dp之分组背包hdu1712
  5. egret学习记录
  6. Java SerialPort SDK
  7. PHP中Array的hash函数实现
  8. ring0获取指定进程的PEB
  9. java中的访问控制符
  10. GB2312汉字区位码、交换码和机内码转换方法 (ZT)