JS对象三

1.枚举对象中的属性

  • 使用for ... in 语句
    - 语法:
    for(var 变量 in 对象){

    }
    for...in语句 对象中有几个属性,循环体就会执行几次
    每次执行时,会将对象中的一个属性的名字赋值给变量

                      var obj = {
                              name:"孙悟空",
                              age:18,
                              gender:"男",
                              address:"花果山"
                       };
                     for(var n in obj){
                              console.log("属性名:"+n);
                              console.log("属性值:"+obj[n]);
                      }
    

2.作用域
作用域指一个变量的作用的范围,在JS中一共有两种作用域:

  • 全局作用域
    - 直接编写在script标签中的JS代码,都在全局作用域
    - 全局作用域在页面打开时创建,在页面关闭时销毁
    - 在全局作用域中有一个全局对象window,
    它代表的是一个浏览器的窗口,它由浏览器创建我们可以直接使用
    - 在全局作用域中:
    创建的变量都会作为window对象的属性保存
    创建的函数都会作为window对象的方法保存
    - 全局作用域中的变量都是全局变量,
    在页面的任意的部分都可以访问的到

  • 函数作用域

          var a = 10;
          var b = 20;
          //var c = "hello";
          
          //console.log(window.c);
          
          function fun(){
              console.log("我是fun函数");
          }
          //window.fun();
          //window.alert("hello");
    
  • 申明提前

    变量的声明提前
    - 使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),
    但是如果声明变量时不适用var关键字,则变量不会被声明提前

    函数的声明提前
    - 使用函数声明形式创建的函数 function 函数(){}
    它会在所有的代码执行之前就被创建,所以我们可以在函数声明前来调用函数
    使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用

          /*console.log("a = "+a);
          
          var a = 123;*/
          
          //fun();
          
          
          //函数声明,会被提前创建
          function fun(){
              console.log("我是一个fun函数");
          }
          
          //函数表达式,不会被提前创建
          var fun2 = function(){
              console.log("我是fun2函数");
          };
          
          fun2();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。