是 JavaScript 中的一个函数
Is IF a function in JavaScript?
我一直在探索JavaScript中的范围。消息来源指出,范围是函数分隔的,而不是像大多数语言那样以块分隔的。
我在我正在编写的一些代码中放置了一些显示代码,因为我的一些函数中的函数不清楚(对我来说),我想看看这些范围是如何工作的。
最大的惊喜是,在 $.getJSON 函数中的 $.each 函数中,if(){} 子句显然被视为一个函数。我本来以为它是一个块。
function displayInfo(nKey) {
if(!nKey) var nKey = 0;
var objFilm = {};
var imgRef;
//iterate through all object properties; display their attributes
// Object.keys() returns an array of all property names
// for most entries, the object is ...film; check first for array of multiple films
jqxhr = $.getJSON('dbMovies.json', function(data) {
var xx = "xx";
$.each(data.disc, function(i, xdata) {
if(xdata.key == nKey) {
objFilm = xdata.film;
var yy = "yy";
imgRef = xdata.img;
return false;
}
console.log("in jqxhr, xx: " + typeof xx); //this shows
console.log("in jqxhr, yy: " + typeof yy); //this does NOT
}); // $.each
})
.done(function() {...}
如果 if(){} 是一个函数,那么什么是块?
你在 if
中有一个return false
,因此只有当 if 条件不为真并且由 if 控制的块没有运行时,才会到达这两个日志语句。如果块没有运行,则yy
没有被分配值。它在范围内,但未初始化。
函数分配到的变量仅受其作用域的限制,该作用域保证包括声明函数的作用域。
if() { }
不是一个函数...这是一个块。它没有出现在您的示例中的原因是,您在日志发生之前return false
中断,并且当日志确实发生时,变量仍未定义。
(function () {
if (true) var x = "if declared variable"; /* block declaration */
document.getElementById('if').innerHTML = x ? x : 'undefined';
(function() {
var y = "function declared variable";
})();
if (typeof y != 'undefined')
document.getElementById('func').innerHTML = y
else
document.getElementById('func').innerHTML = 'undefined';
})();
if: <span id="if"></span>
<br>
func: <span id="func"></span>
相关文章:
- 我可以在json对象中添加一个函数吗
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- mongoose.connect undefined不是一个函数
- 监听器必须是一个函数
- 使用JS函数来使用另一个函数的语法?node.js
- 如何取消object.prototypes javascript的一个函数
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何在javascript中使用不止一个函数
- jQuery-在页面加载时执行一个函数
- jquery UI draggable:UI.children不是一个函数
- jQuery Mobile Undefined不是一个函数
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- JS异常:animate不是一个函数
- 如何将一个函数附加到一个不存在的元素上
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟