原文如下:

今天看到了FLASH AS关于变量作用域的讲解,突然想到一个js作用域的问题。
如下代码,猜猜执行后都弹出什么?


  <script type="text/javascript">
  <!--
  var a="xx";
  function c(){
    alert(a);
    var a=0;
    alert(a);
  }
  c();
  alert(a)

//-->
  </script>

执行上面代码分别弹出了:undefined、0和xx。
可能很多朋友都跟我一样吧,对于那个undefined不知道是怎么来的?
js作用域有些地方真是不好理解,希望高人指点!

其实,这个很好理解,就跟 一般的编程语言一样,都有全局变量,局部变量,当局部变量与全局变量同名时,会将全局变量覆盖。js也是如此,不同的是,js是解释型语言,而且有函数的作用域。当执行c()时,会先检查局部变量的定义。如果有则覆盖。然后再解释执行。执行alert(a) 时,因为全局变量已被覆盖。且没有遇到var a=0;所以是undefined。

对“js变量作用域的疑问”的解答相关推荐

  1. js变量作用域和变量提升

    在javascript中, 理解变量的作用域以及变量提升是非常有必要的.这个看起来是否很简单,但其实并不是你想的那样,还要一些重要的细节你需要理解. 变量作用域 "一个变量的作用域表示这个变 ...

  2. js变量以及其作用域详解

    2019独角兽企业重金招聘Python工程师标准>>> 一.变量的类型  Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量 ...

  3. js变量提升_学习笔记:JS中的作用域和预解析

    知识总结:谢静贤.汤昊 在javascript中作用域是非常重要的,本文将会说明作用域以及我们在工作,以及面试中的一些面试题,如果有不足的地方希望大家可以评论指出来,自己一定会及时的改正错误,避免大家 ...

  4. js中变量作用域的小理解

    一:变量作用域 在js代码中每个变量都是有自己的作用域的,js中不像C语言有块级作用域的概念,取而代之的是函数作用域,看如下代码: var scope="global"; func ...

  5. [JS] undefined、null、ReferenceError的区别、变量作用域问题

    undefined.null.ReferenceError的区别 null表示"没有对象",即该处不应该有值. 典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象. ( ...

  6. JavaScript变量作用域和内存问题(js高级程序设计总结)

    1,变量 ECMAScript和JavaScript是等同的吗?个人认为是否定的.我的理解是这样的,ECMAScript是一套完整的标准或者说协议,而JavaScript是在浏览器上实现的一套脚本语言 ...

  7. php函数,static,globalkeyword及三种变量作用域

    函数 和js函数相似,关注php与其它语言不用的地方 函数的形參默认值 形式: function f($a,$b=3,$vc = "abc"){} 注意:没有给默认值的形參必须传递 ...

  8. 什么是闭包?变量作用域和闭包。

    变量作用域和闭包 变量作用域 当我们写 js 文档的时候经常会设置变量,变量的类型有两种: 全局变量 局部变量 这两种类型的变量有者不同的作用范围,全局变量的作用范围是面向整个文档的,可以称之为全局作 ...

  9. 变量作用域函数作用域

    一. 变量作用域 1)全局变量 在全局环境下声明的变量被视为全局变量. 在没有使用var进行声明的时候,变量就被定义为全局变量.在ES5的严格模式下,如果变量没有使用var来声明是会报错的. 2)局部 ...

最新文章

  1. Android应用开发基础篇(12)-----Socket通信(转载)
  2. Spark和机器学习整合
  3. 小程序常用的10款框架
  4. intel h61 linux驱动下载,intel h61主板驱动
  5. 美国MAK Technoligies介绍
  6. kata-container初探
  7. 一图看懂RTB广告竞价原理,原来这就是实时竞价
  8. 图片服务器 imgproxy 入门教程--实现图片实时裁剪/压缩/处理等操作
  9. 关于创业公司初期的股份
  10. PRML勘误表2011
  11. Aspose for Java 去除水印和数量限制
  12. 【CPU中的主要寄存器】
  13. ODBC和ADO区别
  14. Excel从入门到精通职场必会课程专题
  15. 【Java】求一元二次方程根
  16. 完美运行步道乐跑各个版本可定制速度、步频、路线
  17. nodejs按固定大小读取文件
  18. excel中去重计数_如何在Excel中计数
  19. 假设条件和制约因素的理解
  20. HP-UX crontab

热门文章

  1. rocks自建存储流程
  2. 学委收作业神器-查未交同学
  3. NYOJ 170 网络的可靠性
  4. 将0移到最后,在原数组操作,并且不能改变源数据顺序(JS编程)
  5. NVisionXR_iOS教程三 —— NVisionXR渲染一个立方体
  6. Play on Words UVA - 10129 (有向图欧拉路径)
  7. SSH-CLIENT : gSTM
  8. 命令行选项解析函数(C语言):getopt()和getopt_long()
  9. 修改session的存储机制
  10. 关于 varchar2 的最大长度