手机站

上海千锋Ja培训讲师浅谈JaScript作用域

     发布日期:2000-02-23     沭阳注册公司,安徽公司注册 浏览次数:1008

jascript是目前web领域中使用非常广泛的语言,不管是在前端还是在后端都能看到它的影子,可以说web从业者不论怎样都绕不开它。在前端领域,各种框架层出不穷。在后端领域,nodejs可谓如火如荼,打破了人们对jascript只能作为前端语言的认知。按照此势头下去,jascript会越来越流行,会随着web的发展越来越重要。

所以不论你是想学各种前端框架还是nodejs,都需要深入理解jascript的工作原理以及特性,只有这样才能以不变应万变。

今天千锋老师给大家分享的是:浅谈Jascript作用域

什么是作用域?

Js中的变量或者函数能够被访问到的代码空间(变量或者函数有效的范围)。

Jascript中的作用域

全局作用域;

局部作用域;

当一个变量在函数最外层定义时,变量就在全局作用域中,在一个函数内部定义一个变量,这个变量就在局部变量中。

全局作用域

最外层函数或者在其外部定义的变量具有全局作用域。

vara10;全局变量

functionfoo(){全局函数

console.log(a);

}

这个变量a就在全局作用域中,可以说成是个全局变量,这个a可以子啊认可地方访问或修改。

还有一点,window对象的属性和方法具有全局作用域

Eg:

alert("dddddd");

window.alert("aaaa");

varobj{

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来定义,这个变量具有全局作用域

functionfoo(){

b20;

vara10;

}

foo();

console.log(b);

console.log(a);a会报错,因为a是一个局部变量

局部作用域

定义在函数中的变量就在局部作用域中。并且函数在每次调用时都有一个不同的作用域。这意味着同名变量可以用在不同的函数中。因为这些变量绑定在不同的函数中,拥有不同作用域,彼此之间不能访问。(在一个函数颞部定义的函数或者用var定义的变量具有局部作用域)

Eg:

在ES5中函数去区分全局和局部的唯一的代码块

if(true){

vara10;

}

for(vari0;i<0;i++){

varb10;

}

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

函数的形参具有局部作用域,是局部变量

functionfoo(x){

console.log(x);输出undefined

}

foo();

console.log(x);报错

补充一点块语句

块级声明包括if和switch,以及for和while循环,和函数不同,它们不会创建新的作用域。在块级声明中定义的变量从属于该块所在的作用域。

Eg:

if(true){

Varname“join”;

}

Console.log(name)输出join

Es6中引用了let,const关键字,这些关键字可以代替var,但是和var不同的是,let和const具有块级作用域,也就是说在块级声明中创建并使用时,是具有全局作用域的

在全局作用域声明的变量可以称为全局变量,同理还有全局变量,和函数形参,他们所站的比重是局部变量>函数形参>全局变量。

千锋教育:http:www.mobiletrain.org

千锋教育上海校区:http:sh.mobiletrain.org

上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼24层

培训咨询专线:026279

培训咨询专线:026279咨询QQ:

面授课程:全栈Web开发+培训、全链路设计培训、PHP全栈+服务器集群培训、JaEE+分布式开发培训、大数据+人工智能培训、Unity游戏开发培训、Python培训、云计算+Python运维培训、全栈软件测试培训、Android培训、iOS培训、好程序员

免责声明:以上信息由北京千锋互联科技有限公司 重庆分公司整理发布,内容的真实性、准确性和合法性由该企业负责

公司名称:北京千锋互联科技有限公司 重庆分公司

联系人:李老师

联系电话:4008119990

公司地址:北京市海淀区宝盛北里西区28号天丰利商城4层

标签: 浅谈 上海
打赏

免责声明:本站部份内容系网友自发上传与转载,不代表本网赞同其观点。如涉及内容、版权等问题,请在30日内联系,我们将在第一时间删除内容!

相关头条