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

當(dāng)前位置:首頁(yè)  >  IT問(wèn)答庫(kù)  >  Java基礎(chǔ)知識(shí)

Java作用域

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

Java作用域

推薦答案

      什么是作用域?

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

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

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

      全局作用域

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

      var a = 10; //全局變量

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

      console.log(a);

      }

      這個(gè)變量a就在全局作用域中,可以說(shuō)成是個(gè)全局變量,這個(gè)a可以子啊認(rèn)可地方訪問(wèn)或修改。

      還有一點(diǎn),window對(duì)象的屬性和方法具有全局作用域

      Eg:

      alert("dddddd");

      window.alert("aaaa");

      var obj = {

      name:"john",

      age:20,

      sayHello:function(x){

      console.log(x);//輸出undefined//第二次輸出1//第三次輸出aaa(要問(wèn)我為什么會(huì)輸出三次,因?yàn)槁暶魈嵘膯?wèn)題,請(qǐng)自行百度)

      }

      };

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

      obj.sayHello();

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

      obj.sayHello("aaaaa");

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

      function foo(){

      b = 20;

      var a = 10;

      }

      foo();

      console.log(b);

      console.log(a);//a會(huì)報(bào)錯(cuò),因?yàn)閍 是一個(gè)局部變量

      局部作用域

      定義在函數(shù)中的變量就在局部作用域中。并且函數(shù)在每次調(diào)用時(shí)都有一個(gè)不同的作用域。這意味著同名變量可以用在不同的函數(shù)中。因?yàn)檫@些變量綁定在不同的函數(shù)中,擁有不同作用域,彼此之間不能訪問(wèn)。(在一個(gè)函數(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);//報(bào)錯(cuò)

      補(bǔ)充一點(diǎn)塊語(yǔ)句

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

      Eg:

      if(true){

      Var name = “join”;

      }

      Console.log(name)//輸出join

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

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

最新問(wèn)答資訊

01 unity用什么編程語(yǔ)言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語(yǔ)言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語(yǔ)言?html學(xué)習(xí)難嗎?

學(xué)習(xí) html 語(yǔ)言 可以
5062 人關(guān)注

04 c語(yǔ)言難學(xué)嗎?c語(yǔ)言學(xué)好要多久?

語(yǔ)言 技術(shù) 學(xué)習(xí)
4733 人關(guān)注

06 學(xué)好平面設(shè)計(jì)要多久?報(bào)速成班靠譜嗎?

平面 設(shè)計(jì) 學(xué)習(xí) 時(shí)間
4238 人關(guān)注

相關(guān)問(wèn)題

計(jì)算機(jī)前端和后端區(qū)別,到底該學(xué)哪一個(gè)?

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

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

有很多零基礎(chǔ)的小白想要去學(xué)習(xí)編程技術(shù),那么可以考慮一下java和...

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

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

java中什么是繼承?

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

java byte取值范圍是什么?

同學(xué)您好,java byte取值范圍是什么?針對(duì)這個(gè)問(wèn)題可以看看下面的...

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

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

測(cè)一測(cè)
你知道多少IT梗

主站蜘蛛池模板: 国产精品久久久久久一区二区三区| 精品国产福利一区二区| 国产在线不卡一区二区三区| 国产精品无码一区二区三区电影| 精品国产一区二区二三区在线观看| 国产一区二区三区久久| 国产成人片视频一区二区| 久久毛片一区二区| 中文字幕一区二区三匹| 国产精品一区二区久久不卡| 国产福利电影一区二区三区,日韩伦理电影在线福 | 老鸭窝毛片一区二区三区| 亚洲福利电影一区二区?| 国产主播一区二区| 一区二区乱子伦在线播放| 国产免费播放一区二区| www.亚洲一区| AV天堂午夜精品一区| 国产福利电影一区二区三区,日韩伦理电影在线福| 好爽毛片一区二区三区四无码三飞 | 乱色熟女综合一区二区三区| 国精产品一区一区三区MBA下载 | 免费无码A片一区二三区| 日韩一区二区视频| 亚洲国产精品无码第一区二区三区| 亚洲欧洲精品一区二区三区| 亚洲AV日韩AV天堂一区二区三区| 国产成人无码AV一区二区| 在线精品亚洲一区二区小说| 精品视频一区二区三区免费| 亚洲一区影音先锋色资源| 国产精品高清一区二区人妖| 亚洲综合在线一区二区三区| 国偷自产视频一区二区久| 夜色阁亚洲一区二区三区| 国产午夜精品一区二区三区嫩草 | 无码精品前田一区二区| 亚洲视频一区二区| 久久久久一区二区三区| 人妻夜夜爽天天爽爽一区| 国产精品高清一区二区三区不卡|