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

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

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

Java作用域

發(fā)布:Java培訓 2022-01-20 15:30

Java作用域

推薦答案

      什么是作用域?

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

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

      當一個變量在函數(shù)最外層定義時,變量就在全局作用域中,在一個函數(shù)內(nèi)部定義一個變量,這個變量就在局部變量中。

      全局作用域

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

      var a = 10; //全局變量

      function foo(){ //全局函數(shù)

      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");

      在一個函數(shù)內(nèi)部聲明一個變量不用 var來定義,這個變量具有全局作用域

      function foo(){

      b = 20;

      var a = 10;

      }

      foo();

      console.log(b);

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

      局部作用域

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

      Eg:

      在ES5中函數(shù)去區(qū)分全局和局部的唯一的代碼塊

      if(true){

      var a = 10;

      }

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

      var b = 10;

      }

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

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

      function foo(x){

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

      }

      foo();

      console.log(x);//報錯

      補充一點塊語句

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

      Eg:

      if(true){

      Var name = “join”;

      }

      Console.log(name)//輸出join

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

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

最新問答資訊

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

學習 unity 語言
6020 人關注

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

學習 python 工作 培訓
5389 人關注

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

學習 html 語言 可以
5062 人關注

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

語言 技術 學習
4733 人關注

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

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

相關問題

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

互聯(lián)網(wǎng)行業(yè)的發(fā)展速度很快,有關市場上對于it行業(yè)的人才需求量越...

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

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

java與java script的區(qū)別有哪些?

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

java中什么是繼承?

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

java byte取值范圍是什么?

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

javascript和java有什么區(qū)別

1)基于對象和面向?qū)ο螅篔ava是一種真正的面向?qū)ο蟮恼Z言,即使是...

測一測
你知道多少IT梗

主站蜘蛛池模板: 榆社县| 香格里拉县| 贵州省| 花莲县| 柳州市| 彝良县| 德江县| 璧山县| 麻城市| 南乐县| 华阴市| 黄骅市| 宾川县| 运城市| 东乌| 繁昌县| 株洲市| 宜黄县| 旌德县| 库车县| 安庆市| 赤壁市| 荥经县| 通化市| 阜宁县| 中牟县| 邢台市| 临沂市| 华宁县| 田林县| 吉首市| 乐至县| 河东区| 满城县| 惠安县| 屯门区| 隆德县| 洛浦县| 奎屯市| 江达县| 扎囊县|