《JavaScript权威指南》中指出:JavaScript变量在声明之前已经可用,JavaScript的这个特性被非正式的称为声明提前(hoisting),即JavaScript函数中声明的所有变量(但不涉及赋值)都被“提前”至函数的顶部。下面我们从实例中看看:

实例1:

    var aa = "test";function myFunc(){console.log('aa值为:'+aa);var aa = "TEST";}myFunc();

调用函数myFunc() 打印的结果为 undefined ,因为函数作用域的特性,函数中申明的变量(但不涉及赋值)被“提前”至函数的顶部,所以局部变量在整个函数体始终有效,局部变量aa会覆盖掉全局变量aa,因此打印的结果为 undefined ,其运行过程等价于实例2,如下:

实例2 :

    var aa = "test";function myFunc(){var aa;console.log('aa值为:'+aa);aa = "TEST";}myFunc();

运行结果如下:

转载于:https://www.cnblogs.com/Lily-nercel/p/5810979.html

JavaScript 变量声明提前相关推荐

  1. javascript变量声明 及作用域

    javascript变量声明提升(hoisting) http://openwares.net/js/javascript_declaration_hoisting.html 可能要FQ一下 java ...

  2. js php 变量声明,javascript变量声明实例分析_javascript技巧

    本文实例讲述了javascript变量声明的方法.分享给大家供大家参考.具体分析如下: js中使用一个变量之前应当先声明.变量使用关键字var来声明. 如果未在var声明语句中给变量指定初始值,则该变 ...

  3. javascript变量声明提升(hoisting)

    http://openwares.net/js/javascript_declaration_hoisting.html 可能要FQ一下 javascript的变量声明具有hoisting机制,Jav ...

  4. 谈javascript变量声明

    本文同时发表在另一独立博客上http://qingbob.com/blog/%E8%B0%88javascript%E5%8F%98%E9%87%8F%E5%A3%B0%E6%98%8E 这篇文章还是 ...

  5. JavaScript变量声明+数据类型+数字格式+操作符+进制

    文章目录 1.那些高大上的概念术语都是指什么 什么是web应用? 什么是前台后台? 怎么做网页界面呢? JavaScript可以应用到什么上面? 2.JavaScript实例: 3.语言基础 变量声明 ...

  6. javascript变量声明语法的应用和分号讲究适用性

    变量声明语法:var变量名,通常应用在语句的代码当中.在语句ECMAScript中必须与关键字var变量名之间至少有一个空格.(也就是变量名需要遵守一定的规范,至少不应该出现中文;如出现中文那就使语法 ...

  7. JavaScript 变量声明详解: var, let, const

    JavaScript 中,可以声明变量的关键字有 var.let和const. var 使用 var 定义变量,可以保存任何类型的值.若不初始化变量,变量会保存 undefined. 1. 函数级作用 ...

  8. html5前端开发培训机构,JavaScript变量声明提升

    学习路线 第一阶段:网页制作 HTML:常用标签,锚点,列表标签,表单标签,表格标签,标签分类,标签语义化,注释,字符实体 CSS:CSS介绍,全局样式,行内样式,内联样式,选择器,字体样式值,文本样 ...

  9. Javascript变量声明var和let的区别

    作用域: 全局作用域 局部作用域(函数作用域) 块作用域 区别:1.var有变量提升,而let没有:2.let不允许在相同的作用域下重复声明,而var允许:3.let没有暂时性死区问题:4.let创建 ...

  10. ES5和ES6中的变量声明提升

    ES5和ES6中的变量声明提升 Example1: a=2; var a; console.log( a ); //结果为2 Example2: console.log( a ); //结果是unde ...

最新文章

  1. mount --bind
  2. Hibernate学习之hibernate状态
  3. matlab函数输入顺序,求助:在MATLAB里如何输入时间序列中的时间
  4. 帝国cms7.5百度小程序针对搜索引擎自然搜索优化版生成静态版
  5. 一年级下册数学计算机应用题,一年级数学下册期中检测试题
  6. JUnit5 假设示例
  7. JAVA中堆和栈的区别
  8. Shape Correspondence and Functional Maps
  9. python入门心得_python学习心得:如何入门
  10. java定时统计_java 定时任务每日晚上凌晨执行数据统计
  11. Kotlin教程,从入门到精通
  12. 数据库网页搭建教程(一)——数据准备
  13. win10系统C盘根目录里文件夹都是干什么的
  14. 虚拟主机终极选购指南
  15. HEVC预测块(PU)模式划分显示
  16. 项目人生:成长与感悟
  17. uni-app 实现微信分享
  18. nixyx —— 一个小巧的项目工程/编译文件生成器(构建系统?)
  19. window修改host文件
  20. linux修改组群名字,Linux用户和组 - 回忆斑斑驳驳的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. http awstats安装
  2. 安志清PHP:dedecms织梦常用标签大全,只有你没见过的
  3. 献给初学破解人的口诀和指令
  4. PopTip View
  5. tomcat 日志配置
  6. 最近,前端开发把我恶心着了,为了甩锅,我写了个牛逼的日志切面!
  7. 震惊!人工智能已经发展到这个地步了
  8. 重磅!阿里发布全新操作系统,成功顶住多年双 11,这次要干翻 CentOS 了!
  9. 完美:Docker遇到Intellij IDEA这个插件,再次解放生产力~
  10. 百万级MySQL的数据量,该如何快速的完成数据迁移?