我有两个数组:
array1 = ["one", "two"];
array2 = ["two", "four"];
如果我写:
var inetersection = array1.filter(function(n){
return array2.indexOf(n) != -1
});
我得到正确的答案:“两个”。
但是如果我写一个函数:
function intersection (array1, array2){
array1.filter(function(n){
return array2.indexOf(n) != -1
});
}
然后console.log(intersection(array1, array2));
返回undefined
第二种语法有什么问题?
您的函数不返回任何内容。您如何解决它:
function intersection (array1, array2){
return array1.filter(function(n){
return array2.indexOf(n) != -1
});
}
因此,变量具有一个值,让我们从此开始:
var hello_world = "Hello World!";
这样做是将的值设置hello_world
为"Hello World!"
。这很简单。
现在让我们尝试使用一个函数。
function addNumbers (number_1, number_2) {
number_1 + number_2;
}
现在让我们运行该功能
addNumbers(1, 2)
undefined
我们为什么得到undefined
?让我们回到第一个示例,并在控制台中输入类似的内容
>“ Hello World!”
“你好世界!”
发生的是,当我们键入字符串时,"Hello World!"
它将重新调整字符串。该规则是在JavaScript中预设的,但是当您创建自己的函数时,它不知道return
其原因是什么,让我们以jQuery为例。你可以做:
var elem = $("#element");
让我们看一下第一部分。因此,有一个名为的函数$
,该函数可能正在做很多事情。首先,使用来获取元素id
element
。它将元素存储在中elem
。该函数可能会做很多事情,但是returning
没什么。返回一些东西就是设置一个函数的值。这是两个示例:
var function_1 = function () {
alert("Hello!");
};
var function_2 = function () {
return function () {
alert("Hello");
}
}
现在,我只是在第二功能上做了什么呢?这是什么
var variable_1 = function_1();
console.log(variable_1);
undefined
variable_1
未定义,但仍会发出警报。这是因为它运行了该函数,但是返回的是未定义的。所以variable_1
不是功能;因为variable_1
未定义。让我们来看看function_2
var variable_2 = function_2();
console.log(variable_2);
功能 () { alert(“ Hello”); }
variable_2(); //Alerts "Hello!"
这也有点令人困惑,因为function_2
返回一个函数,它设置variable_2
为返回的函数。这就是为什么它可以正常工作的原因。
希望有道理。这是MDN页面return
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句