首页 > 编程语言 > 详细

javascript学习笔记

时间:2016-01-13 12:15:00      阅读:102      评论:0      收藏:0      [点我收藏+]

  函数作用于和声明提前:

  这是一个例子,刚开始看的时候,觉得自己一眼就知道怎么回事,自己敲了之后发现,结果并不是那样。或许其他的小伙伴们也会遇到这样的问题吧。

  var a =‘123‘;

  f();

  function f (){

    alert(a);

    var a = ‘456‘;

    alert(a);

  }

  结果会是什么呢?可能很多小伙伴都会认为,第一次弹出 123,第二次弹出456.当然如果答案是这样的话,写这个就没必要了。大家不妨自己去敲一下代码就知道了。

  答案:

    第一次弹出undefined,第二次弹出456.

    对于跟我一样js不好的小伙伴是否会大吃一惊呢?

    js权威指南上是这样解释的:由于函数作用域的特性,局部变量在整个函数体始终是有定义的,也就是说,在函数体内局部变量遮盖了同名全局变量。尽管如此,只有在程序执行到var 语句

                 的时候,局部变量才会被真正赋值。上述过程等价于

    f();

    function f (){

      var  a;

      alert(a);

      a = ‘456‘;

      alert(a);

    }

    我相信这样小伙伴们就应该能清楚的知道了。也问过其他的大神们,他们给出一个名词,变量提升。从字面上大致也可以理解,可能这样说更简单,更加的通俗易懂。

javascript学习笔记

原文:http://www.cnblogs.com/caiqingchong/p/5126556.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!