一区二区三区精品视频-一区二区三区国产美女在线播放-一区二区三区福利视频-一区二区三区福利-毛片大全免费看-毛片大片免费看

千鋒教育-做有情懷、有良心、有品質的職業教育機構

當前位置:首頁  >  IT問答庫  >  Java基礎知識

Java作用域

發布:Java培訓 2022-01-20 15:30

Java作用域

推薦答案

      什么是作用域?

      JS中的變量或者函數能夠被訪問到的代碼空間(變量或者函數有效的范圍)。

      JavaScript中的作用域:全局作用域; 局部作用域;

      當一個變量在函數最外層定義時,變量就在全局作用域中,在一個函數內部定義一個變量,這個變量就在局部變量中。

      全局作用域

      最外層函數或者在其外部定義的變量具有全局作用域。

      var a = 10; //全局變量

      function foo(){ //全局函數

      console.log(a);

      }

      這個變量a就在全局作用域中,可以說成是個全局變量,這個a可以子啊認可地方訪問或修改。

      還有一點,window對象的屬性和方法具有全局作用域

      Eg:

      alert("dddddd");

      window.alert("aaaa");

      var obj = {

      name:"john",

      age:20,

      sayHello:function(x){

      console.log(x);//輸出undefined//第二次輸出1//第三次輸出aaa(要問我為什么會輸出三次,因為聲明提升的問題,請自行百度)

      }

      };

      console.log(obj.name);//輸出jogn

      obj.sayHello();

      console.log(obj.sayHello(1))//輸出undefined

      obj.sayHello("aaaaa");

      在一個函數內部聲明一個變量不用 var來定義,這個變量具有全局作用域

      function foo(){

      b = 20;

      var a = 10;

      }

      foo();

      console.log(b);

      console.log(a);//a會報錯,因為a 是一個局部變量

      局部作用域

      定義在函數中的變量就在局部作用域中。并且函數在每次調用時都有一個不同的作用域。這意味著同名變量可以用在不同的函數中。因為這些變量綁定在不同的函數中,擁有不同作用域,彼此之間不能訪問。(在一個函數顳部定義的函數或者用var定義的變量具有局部作用域)

      Eg:

      在ES5中函數去區分全局和局部的唯一的代碼塊

      if(true){

      var a = 10;

      }

      for(var i =0; i<=0; i++){

      var b = 10;

      }

      console.log(a,b);//a,b都是輸出10

      函數的形參具有局部作用域,是局部變量

      function foo(x){

      console.log(x);//輸出undefined

      }

      foo();

      console.log(x);//報錯

      補充一點塊語句

      塊級聲明包括if和switch,以及for和while循環,和函數不同,它們不會創建新的作用域。在塊級聲明中定義的變量從屬于該塊所在的作用域。

      Eg:

      if(true){

      Var name = “join”;

      }

      Console.log(name)//輸出join

      Es6中引用了let,const關鍵字,這些關鍵字可以代替var,但是和var不同的是,let和const具有塊級作用域,也就是說在塊級聲明中創建并使用時,是具有全局作用域的

      在全局作用域聲明的變量可以稱為全局變量,同理還有全局變量,和函數形參,他們所站的比重是局部變量>函數形參>全局變量

相關問題

計算機前端和后端區別,到底該學哪一個?

互聯網行業的發展速度很快,有關市場上對于it行業的人才需求量越...

java和php的區別是什么?哪一個更難一些?

有很多零基礎的小白想要去學習編程技術,那么可以考慮一下java和...

java與java script的區別有哪些?

相信大多數同學對java、java script都不會陌生,二者都是編程語...

java中什么是繼承?

繼承的特點:只需明確一點,java只支持單繼承,不支持多繼承,但...

java byte取值范圍是什么?

同學您好,java byte取值范圍是什么?針對這個問題可以看看下面的...

javascript和java有什么區別

1)基于對象和面向對象:Java是一種真正的面向對象的語言,即使是...

測一測
你知道多少IT梗

主站蜘蛛池模板: 石首市| 普洱| 莆田市| 青铜峡市| 会同县| 若尔盖县| 临沂市| 理塘县| 遵义县| 武强县| 夹江县| 上栗县| 卫辉市| 舒兰市| 义马市| 伽师县| 固原市| 南投县| 大理市| 龙里县| 莱州市| 尼勒克县| 色达县| 清水河县| 永顺县| 云龙县| 江山市| 禹州市| 胶南市| 小金县| 六盘水市| 石渠县| 镇雄县| 宜阳县| 镇雄县| 五华县| 赞皇县| 苍梧县| 固安县| 偃师市| 清水河县|