js中三种作用域详解(全局,函数,块级)

1.全局变量:声明在函数外部的变量(所有没有var直接赋值的变量都属于全局变量)

2.局部变量:声明在函数内部的变量(所有没有var直接赋值的变量都属于全局变量)

JS中变量申明分显式申明和隐式申明。

vari=100;//显式申明

i=100;//隐式申明

  在函数中使用var关键字进行显式申明的变量是做为局部变量,而没有用var关键字,使用直接赋值方式声明的是全局变量。  

  当我们使用访问一个没有声明的变量时,JS会报错。而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申明一个全局变量,这一点一定要注意。

JavaScript强化教程

全局作用域针对于全局变量来说;

1<script type="text/javascript">

2alert(c);//输出undefind

3   // alert(d);报错错

var c=3;

5    function test(){

6        var a=1;

7        b=2;

8        alert(c)//输出三

9    }

10     alert(c);//输出3

11      test();

12     </script>

全局变量在整个上下文都有效只是在没有赋值之前调用,会输出undefin

函数作用域是针对局部变量来说的,在函数中定义的变量在函数外不能获取

1    function test(){

2        alert(a);//声明未赋值输出undefine

3        var a=1;

4        alert(a);//1

5    }

6// alert(a);报错,外部获取不到

7

8test();

9//alert(a);保存不能输出

块级作用域

概念“{}”中间的部分都是块级作用域ex:for while if ,js中没有块级作用域,但是可以用闭包实现类似功能。

1<script type="text/javascript">

2    var i=1;

3    if(i==1){

4        var b=2;

5    }

6    alert(b);//输出2

7    for(var j=0;j<=2;j++){

8        var c=3;

9    }

10         alert(c);//输出3

11     </script>

时间: 2024-10-14 13:16:26

js中三种作用域详解(全局,函数,块级)的相关文章

用例图中三种关系详解(转)

共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量. 1.包含(include) 包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用.基用例控制与包含用例的 关系,以及被包含用例的事件流是否会插入到基用例的事件流中.基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性.包含关系对典型的应用就是复用,也就是定义中说的情景.但是有时当某用例

js 中中括号,大括号使用详解

一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数.如:var LangShen = {"Name":"Langshen","AGE":"28"};上面声明了一个名为"LangShen"的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性,所以访问时,应该用.(点)来层层访问:LangShen.Name.LangShen.AGE,当然我们也可以用数组的方式来访问,如:Lang

查看登陆系统用户的信息的三种方法详解

查看登陆系统用户的信息的三种方法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.who这个命令显示可以谁在登陆,但是这个有很多的花式玩法,这个命令超简单 语法:who [OPTION]... [ FILE | ARG1 ARG2 ] 1.参数:-u,显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串. 例如: 2.参数:-m,此参数的效果和指定"a

JS中的event 对象详解

JS中的event 对象详解 JS的event对象 Event属性和方法: 1. type:事件的类型,如onlick中的click: 2. srcElement/target:事件源,就是发生事件的元素: 3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下:(firefox中 0代表左键,1代表中间键,2代表右键) 4. clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的

js变量以及其作用域详解

一.变量的类型  Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量.例如: i=100;//Number类型 i="variable";//String类型 i={x:4};//Object类型 i=[1,2,3];//Array类型 JS的这种特性虽然让我们的编码更加灵活,但也带来了一个弊端,不利于Debug,编译器的弱检测让我们维护冗长的代码时相当痛苦. 二

《从0到1学习Flink》—— Flink 中几种 Time 详解

前言 Flink 在流程序中支持不同的 Time 概念,就比如有 Processing Time.Event Time 和 Ingestion Time. 下面我们一起来看看这几个 Time: Processing Time Processing Time 是指事件被处理时机器的系统时间. 当流程序在 Processing Time 上运行时,所有基于时间的操作(如时间窗口)将使用当时机器的系统时间.每小时 Processing Time 窗口将包括在系统时钟指示整个小时之间到达特定操作的所有事

图像处理中的数学原理详解19——函数的极限

欢迎关注我的博客专栏"图像处理中的数学原理详解" 全文目录请见 图像处理中的数学原理详解(总纲) http://blog.csdn.net/baimafujinji/article/details/48467225 图像处理中的数学原理详解(已发布的部分链接整理) http://blog.csdn.net/baimafujinji/article/details/48751037 1.1.3 函数的极限 本小节介绍两个重要的函数极限,并讨论它们的应用. 重要极限1: 此外,该重要极限的

虚拟机中的三种网络详解

一.三种网络区别 1. vmnet0        vmnet0实际上就是一个虚拟的网桥,这个网桥有很若干个端口,一个端口用于连接你的Host,一个端口用于连接你的虚拟机,他们的位置是对等的,谁也不是谁的网关.所以在Bridged模式下,你可以让虚拟机成为一台和你的Host相同地位的机器. 2. vmnet1 vmnet1这是一个Host-Only网络模式,这是用于建立一个与世隔绝的网络环境所用到的,其中vmnet1也是一个虚拟的交换机,交换机的一个端口连接到你的Host上,另外一个端口连接到虚

JS中的this用法详解

随着对js的深入学习和使用,你会发现它里面包含了很多令人困惑的机制,比如对象.闭包.原型链继承等等,而这其中肯定包含令你现在或者曾经费解的this,如果你不把心一横,花点时间还真不明白这个this的用法,下面这篇文章来详细探讨下: 1.this是啥? 简言之,this是JavaScript语言中定义的众多关键字之一,它的特殊在于它自动定义于每一个函数域内,但是this到底指啥东西却让很多人张二摸不着头脑.这里我们留个小悬念,希望看完这篇文章了你能回答出来this到底指什么. 2.this有啥用?