javascript函数中的词法作用域,为什么代码返回未定义
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript函数中的词法作用域,为什么代码返回未定义,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1107字,纯文字阅读大概需要2分钟。
内容图文
这个问题已经在这里有了答案: > Surprised that global variable has undefined value in JavaScript 5个
var variable = "top level " ;
function outer(){
alert(variable); // why does this alert returns undefined ??
var variable = " inside outer, outside inner";
function inner(){
alert(variable);
}
inner();
}
outer();
从词法作用域的定义中我了解到的是,这些函数可以访问其作用域之内和之外的所有值,即在它们之前定义的所有值.那么,为什么第一个警报返回未定义?
解决方法:
因为提升,您在函数内声明的变量提升到了其作用域的顶部,因此您的代码看起来确实像这样
var variable = "top level " ;
function outer(){
var variable; // undefined, a new local variable is declared, but not defined
alert(variable); // alerts undefined, as that's what the variable is
variable = " inside outer, outside inner";
function inner(){
alert(variable);
}
inner();
}
outer();
如果您只想更改外部变量,请删除var关键字,因为它声明了一个新的局部变量
var variable = "top level " ;
function outer(){
alert(variable);
variable = " inside outer, outside inner"; // no "var"
function inner(){
alert(variable);
}
inner();
}
outer();
内容总结
以上是互联网集市为您收集整理的javascript函数中的词法作用域,为什么代码返回未定义全部内容,希望文章能够帮你解决javascript函数中的词法作用域,为什么代码返回未定义所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。