浅谈JavaScript作用域
Javascript是目前web领域中使用非常广泛的语言,不管是在前端还是在后端都能看到它的影子,可以说web从业者不论怎样都绕不开它。在前端领域,各种框架层出不穷。在后端领域,nodejs可谓如火如荼,打破了人们对Javascript只能作为前端语言的认知。按照此势头下去,Javascript会越来越流行,会随着web的发展越来越重要。
所以不论你是想学各种前端框架还是nodejs,都需要深入理解Javascript的工作原理以及特性,只有这样才能以不变应万变。
接下里千锋重庆Java培训的老师给大家分享的是:有关JavaScript作用域的知识点:
1.什么是作用域?
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 是一个局部变量
2.局部作用域
定义在函数中的变量就在局部作用域中。并且函数在每次调用时都有一个不同的作用域。这意味着同名变量可以用在不同的函数中。因为这些变量绑定在不同的函数中,拥有不同作用域,彼此之间不能访问。(在一个函数颞部定义的函数或者用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具有块级作用域,也就是说在块级声明中创建并使用时,是具有全局作用域的
在全局作用域声明的变量可以称为全局变量,同理还有全局变量,和函数形参,他们所站的比重是局部变量>函数形参>全局变量。
猜你喜欢LIKE
相关推荐HOT
更多>>前端工程师需要掌握哪些知识?前端主流框架是什么?
Web前端在最近几年发展的十分迅速,企业需求量越来越大,自然开出的薪资待遇也水涨船高,吸引越来越多的人学习前端技术,甚至有的人自学前端。...详情>>
2023-03-17 14:58:14重庆前端开发培训班学出来有用吗?自学能成吗?
前端开发如今的市场份额占比十分大,岗位人才缺口还是比较大,自然进军前端开发的人也多了起来。有人说前端开发入门容易,可以自学,也有人建议...详情>>
2023-03-16 14:24:17重庆学it到哪里比较好?it培训机构靠谱吗?
IT行业的发展非常迅速,随着科技的进步和人工智能的应用,IT技术不再如旧时一样神秘难学,可以通过培训短时间内从零基础学会一门it技术。尽管如...详情>>
2023-03-13 11:36:54学软件开发哪里好?在重庆如何选择一家专业的培训?
学软件开发哪里好?随着软件开发技术的蓬勃发展,衍生出了不少的it技术培训机构,对于想要参加培训的同学而言,在选择上无疑是非常困难的。学软...详情>>
2023-03-09 15:47:39热门推荐
学it行业需要什么学历?重庆it培训哪比较好?
沸java和python的区别与联系,初学者适合学哪个?
热java培训学校出来好找工作吗?Java程序员的出路好吗?
热Java如何学?有什么技巧?
新前端工程师需要掌握哪些知识?前端主流框架是什么?
学it培训班哪个好?线上it培训班怎么样?
重庆java培训一般几个月?零基础能转行学习吗?
学it需要具备什么条件?IT行业容易进吗?
web前端怎么学?零基础学前端要多久?
重庆前端开发培训班学出来有用吗?自学能成吗?
学it需要多长时间?重庆it培训班真的能就业吗?
学it需要什么学历?最低要求是什么?
java开发需要学习什么?Java怎样快速入门?
现在it行业哪个方向比较好?转行做IT好吗?