【JavaScript】作用域
【摘要】 作用域在ES2015前,js只有两种类型的作用域:全局作用域和函数作用域,而在ES2015引入了一个重要的新关键词:let 块作用域在块{}内用var声明的变量没有块作用域,可在全局使用而在块{}内使用let关键词声明的变量无法在块外部进行访问{ let name = "黑城笑";}//无法在块外使用name 全局作用域声明在函数以外的变量,可在全局进行调用var name="黑城笑";f...
作用域
在ES2015前,js只有两种类型的作用域:全局作用域和函数作用域,而在ES2015引入了一个重要的新关键词:let
块作用域
在块{}内用var声明的变量没有块作用域,可在全局使用
而在块{}内使用let关键词声明的变量无法在块外部进行访问
{
let name = "黑城笑";
}
//无法在块外使用name
全局作用域
声明在函数以外的变量,可在全局进行调用
var name="黑城笑";
function nFuction():
{
//可调用name
}
在外部使用let声明后再在块内或函数内重新声明变量不会改变在外部let所声明变量的值
let name = "黑城笑";
if (name=="黑城笑")
{
let name = "wallace";
document.write(name+"<br>");
}
document.write(name);
js的全局作用域是js环境,而HTML的全局作用域是windows对象,即通过var定义的全局变量属于window对象,可以使用window方法对其进行调用
函数作用域
在函数内部定义的变量,仅能在函数内使用
function nFuction():
{
var name="黑城笑";
}
//无法调用name
在函数内使用let对变量进行声明同var的作用一样
提升
通过var声明的变量将会提升到顶端,即在HTML中可以在声明之前调用变量
反之,通过let声明的变量无法提升到顶端,即无法在HTML中在声明之前调用let所声明的变量
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)