JavaScript基础学习(三)

来源:互联网 发布:阿里云消息推送 编辑:程序博客网 时间:2024/04/30 07:42

 作用域

1:作用域:表示变量的作用范围。在全局作用域(整个页面中),有一个window对象,有游览器创建例如:

                         var a=10,b=5;

                         console.log(window.a+window.b);

2:console.log(a);

        var a=10;//表示创建一个变量a=10;使用var关键字声明的变量会在所有代码执行之前声明,相当于在程序第一行声明,但没有赋值,所以程序不会报错,但是值为undefined.

3:        fun1();

                         function fun1(){

                                  console.log("我是fun1函数")

                         }//用函数声明创建的函数对象在JS代码执行前一句被创建,可以提前调用。

      fun2();

                         var fun2=function()

                         {console.log("123456");}  //用var变量声明的函数,仅仅在之前被声明但没有赋值所以不能被调用。

4:函数作用域:在函数调用的时候创建在函数执行完的时候销毁。

var a=5;

                         var a= function ()

                         {

                                  var a=10

                                  console.log("123456");

                                  function fun1(){

                                          console.log("a="+a);

// console.log("a="+window.a);

                                  }

                                  fun1();//在调用时候会现在自己作用域找,由于fun1()函数作用域没有然后就在a()作用域中找如果还没有就在全局作用域中找。就近原则。

                         }

我们如果要访问全局作用域中的变量可以使用window对象来进行访问。

 5:           This

Var name=”全局变量”

function fun1(a,b){

                                  console.log("a="+a+",b="+b);

                                  console.log(this.name);//this->指向值会发生变化

                         }

                        

                         fun1(12,21);

                         var a={

                                  name:"小明",

                                  SayNAME:fun1

                                 

                         }

                         a.SayNAME();

fun1(12,21)等价于window.fun1(),调用window的fun1()方法时指向window对象。

a.      SayNAME();this->指向a对象。

6:

类似于对象数组创建多个对象

                         functioncreateobject(a,b){

                                  vara=new Object();

                                  a.name=a;

                                  a.age=b;

                                  returna;

                                 

                                 

                         };

                         varb=createobject("小明",18);

                         vara=createobject("小红",15);

                         console.log(a);

                  console.log(b);

 

2:  枚举对象中的属性

a={

     name:"张三",

     sex:"男",

     SAYNAME:function(){

              console.log("123");

     }

   };

  console.log(a);

   // n in a 可以判断 n这个属性名是否在 对象a中;

   for(var n ina)

   {

     console.log(n);//算出属性名

//    a["123"]=20;

//    n="123"我们可以这样n表示各种属性名。

     console.log(a[n])//表示属性值

   }

格式为

for (var n in object名)//

 

 

 

 

 

 

 

function fun2()

          {

           function fun1()

           {

                 console.log("我要起来");

           }

          returnfun1;//返回fun1这个函数对象。

          //returnfun1();//返回fun1()的返回值。

         

         

          }

      // var b=fun2();

      var b;

      b=fun2()();

       console.log(typeof b);

立即执行函数

  (function(a,b){

          alert(a+b);

     })(1,2);//只会执行一次。

 

 

(3)

var a=new Object;

      a.name="张三";

      a.SAYNAME=function(){

        console.log(a.name);

       

      }

a.      SAYNAME();//方法 函数和方法只是名称上的区别,本质上是一样的。

var a=new Object;

   a={

   name:"张三",

   sex:"男",

   SAYNAME:function(){

             console.log("123");

   }

   };

   console.log(a);

   // n in a 可以判断n这个属性名是否在 对象a中;

   for(var n in a)

   {

   console.log(n);//算出属性名

//   a["123"]=20;

//   n="123" 我们可以这样n表示各种属性名。

   console.log(a[n])//表示属性值

   }

 

原创粉丝点击