欧美经典日韩精品_日韩高清亚洲日韩精品一区_日韩精品无码综合视频网_国产v亚洲v天堂?无码久久_中文字幕免费无码专区

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

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

Java作用域

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

Java作用域

推薦答案

      什么是作用域?

      JS中的變量或者函數(shù)能夠被訪問到的代碼空間(變量或者函數(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就在全局作用域中,可以說成是個(gè)全局變量,這個(gè)a可以子啊認(rè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(要問我為什么會(huì)輸出三次,因?yà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來定義,這個(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ù)中,擁有不同作用域,彼此之間不能訪問。(在一個(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)塊語句

      塊級(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í)作用域,也就是說在塊級(jí)聲明中創(chuàng)建并使用時(shí),是具有全局作用域的

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

最新問答資訊

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

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

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

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

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

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

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

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

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

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

相關(guān)問題

Java培訓(xùn)班的課程一般都學(xué)習(xí)什么內(nèi)容

首先是Java技術(shù)的核心和基礎(chǔ)JavaSE,這一階段會(huì)接觸到Java基礎(chǔ)語...

學(xué)習(xí)Java有哪些技巧嗎

java作為最經(jīng)典的編程語言之一受到大家的喜愛,不止你我,很多人...

java程序員常用到的技術(shù)有哪些

操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)這些基礎(chǔ)知識(shí),工作之后基本都忘的差不多了...

int和integer有哪些區(qū)別?

JVM模型的介紹二

JVM模型的介紹二,接著上一篇我們繼續(xù)來分享,棧之本地方法棧。 ...

JVM模型的介紹一

Java培訓(xùn)班教程系列分享JVM模型的介紹一,Java內(nèi)存分配:JVM定義...

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