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

當前位置:首頁  >  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具有塊級作用域,也就是說在塊級聲明中創建并使用時,是具有全局作用域的

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

最新問答資訊

01 unity用什么編程語言?unity學習難度大嗎

學習 unity 語言
6020 人關注

02 python容易學嗎?學好python有什么好處?

學習 python 工作 培訓
5389 人關注

03 html是什么語言?html學習難嗎?

學習 html 語言 可以
5062 人關注

04 c語言難學嗎?c語言學好要多久?

語言 技術 學習
4733 人關注

06 學好平面設計要多久?報速成班靠譜嗎?

平面 設計 學習 時間
4238 人關注

相關問題

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

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

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

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

java與java script的區別有哪些?

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

java中什么是繼承?

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

java byte取值范圍是什么?

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

javascript和java有什么區別

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

測一測
你知道多少IT梗

主站蜘蛛池模板: 日韩人妻一区二区三区蜜桃视频| 亚洲一区二区三区精品视频| 亚洲国产一区在线| 国产一区二区高清在线播放| 香蕉久久一区二区不卡无毒影院| 99精品一区二区免费视频| 国产精品一区二区四区| 国产乱子伦一区二区三区| 文中字幕一区二区三区视频播放 | 免费精品一区二区三区第35| 精品国产一区二区三区香蕉| 久久无码人妻精品一区二区三区| 色欲综合一区二区三区| 精品国产一区二区三区不卡 | 人成精品视频三区二区一区| 国产成人一区二区三区在线观看| 亚洲色无码专区一区| 韩国福利一区二区三区高清视频 | 亚洲日韩精品国产一区二区三区| 日本高清不卡一区| 四虎永久在线精品免费一区二区| 国产91久久精品一区二区| 少妇精品无码一区二区三区| 久久亚洲中文字幕精品一区四| 色视频综合无码一区二区三区| 亚洲影视一区二区| 亚洲AV一区二区三区四区| 亚洲欧美国产国产综合一区| 日韩AV无码久久一区二区| 韩国一区二区视频| 亚洲一区AV无码少妇电影| 精品一区二区久久久久久久网精| 国产美女一区二区三区| 成人精品一区二区户外勾搭野战| 51视频国产精品一区二区| 天堂一区二区三区在线观看| 国产婷婷色一区二区三区深爱网 | 国产精品福利区一区二区三区四区| 视频一区二区在线播放| 日本精品高清一区二区| 精品国产一区二区三区四区 |