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

當前位置:首頁  >  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梗

主站蜘蛛池模板: 日韩社区一区二区三区| 无码人妻一区二区三区在线视频 | 中文字幕aⅴ人妻一区二区 | 国产伦精品一区二区| 精品国产免费一区二区| 国产精品无码一区二区三区免费 | 日韩人妻一区二区三区蜜桃视频 | 国产AV一区二区三区无码野战| 亚洲一区二区观看播放| 无码国产伦一区二区三区视频 | 无码国产精品一区二区免费模式 | 久久亚洲AV午夜福利精品一区| 成人免费一区二区无码视频| 国产伦精品一区二区三区视频猫咪 | 另类免费视频一区二区在线观看| 国产精品综合AV一区二区国产馆| 一区二区视频在线免费观看| 任你躁国语自产一区在| 国产成人精品视频一区| 亚洲av无码不卡一区二区三区| 无码中文字幕乱码一区| 国产在线不卡一区二区三区| 亚洲码欧美码一区二区三区| 国产免费一区二区三区不卡 | 国产成人精品无人区一区| 无码精品人妻一区二区三区人妻斩| 夜精品a一区二区三区| 国产AV午夜精品一区二区入口| 精品黑人一区二区三区| 日韩三级一区二区| 鲁丝丝国产一区二区| 国产成人精品一区二区A片带套 | 国产乱码精品一区二区三区| 国产高清一区二区三区| 91一区二区三区四区五区| 麻豆AV一区二区三区久久| 中文字幕一区二区三区5566 | 末成年女AV片一区二区| 国产高清在线精品一区二区三区 | 久久精品一区二区三区AV| 久久国产精品免费一区|