zoukankan      html  css  js  c++  java
  • JS 无块级作用域

    JS作用域为“函数级作用域”,记住最简明的一句“函数中声明的所有变量,无论是在哪里声明的,在整个函数中它们都是有定义的。

    下面是自己的笔记
    (1)首先,只是在这个函数中有定义,也就是说,在输出语句后定义和输出语句前定义是一样的结果,最后变量的值都是“undefined”,下面两种写法结果一样;

    1. function local(){   
    2.     document.write(local);
    3.     var local;
    4. }
    5. function local(){
    6.     var local;
    7.     document.write(local);
    8. }

    如果涉及到变量赋值,下面两个效果就不一样

    1. function local_1(){
    2.      var local= "local" ;
    3.      document.write(local);
    4.      // 输出local      
    5. }
    6. function local_2(){
    7.      document.write(local);
    8.      var local= "local" ;
    9.      // 输出undefined    
    10. }

    (2)另一个“无块级作用域”示例

    1. function local(){   
    2.     for(var i = 0 ; i<=2 ;i++){
    3.         document.write(i);
    4.     }
    5.     document.write("<hr>");
    6.     document.write(i);
    7.     /*输出
    8.           012
    9.           ----------
    10.           3
    11.         */
    12. }

    显然,变量i在for循环中定义,但离开for这个程序块,它仍旧可以使用,原因就是它还是在local这个函数中。

    (3)关于全局变量,和C等差不多了,简单放个例子

      1. var global = "global";
      2. function local_1(){ 
      3.     document.write(global);
      4. //输出global
      5. }
      6. function local_2(){
      7.     document.write(global);
      8.     var global   ;
      9. //输出undefined
      10. }
      11. function local_3(){
      12.     var global = "local"  ;
      13.     document.write(global); 
      14. //输出local
      15. }

     

    摘自:http://blog.csdn.net/johnny_depp/article/details/3772070

     

  • 相关阅读:
    天气查看
    省市区三级联动
    AJAX动态加载评论
    jquery插件实现分页
    obj-fit
    js使用正则表达式验证身份证格式
    弹性图片
    浏览器兼容问题
    Python3基础 __getattr__ 访问不存在的属性时,新增提示功能
    Python3基础 __delattr__ 在一个属性被删除时的行为
  • 原文地址:https://www.cnblogs.com/vincent_ds/p/2721477.html
Copyright © 2011-2022 走看看