千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  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 人关注

相关问题

Java培训班的课程一般都学习什么内容

首先是Java技术的核心和基础JavaSE,这一阶段会接触到Java基础语...

学习Java有哪些技巧吗

java作为最经典的编程语言之一受到大家的喜爱,不止你我,很多人...

java程序员常用到的技术有哪些

操作系统、计算机网络这些基础知识,工作之后基本都忘的差不多了...

int和integer有哪些区别?

int 和 Integer 的基本区别有如下⼏点: int 是基本数据类型,...

JVM模型的介绍二

JVM模型的介绍二,接着上一篇我们继续来分享,栈之本地方法栈。 ...

JVM模型的介绍一

Java培训班教程系列分享JVM模型的介绍一,Java内存分配:JVM定义...

测一测
你知道多少IT梗