我不知道为什么当从这样的另一个函数中调用一个值时,推入系统不起作用:
var array=['alice','why'];
check(array);
function check(array) {
var word = array[0].split("");
again(word)
}
var already = [];
function again(word) {
newWord = word.join("");
console.log(word)
console.log(newWord)
console.log(typeof newWord)
already.push(newWord);
}
如果我在函数内插入一个单词,它将起作用。像这样:
var already = [];
again();
function again() {
word = ['a','l','i','c','e']
newWord = word.join("");
console.log(word)
console.log(newWord)
console.log(typeof newWord)
already.push(newWord);
console.log(already)
}
问题出在哪里?我不知道...
正如您在示例中看到的那样,两个示例的单词和类型均相同
答案 0 :(得分:1)
在初始化already.push(newWord);
之前,将调用var already = [];
。
如果这样放置,它将起作用。
var array = ['alice', 'why'];
var already = [];
check(array);
function check(array) {
var word = array[0].split("");
again(word)
}
function again(word) {
newWord = word.join("");
console.log(word)
console.log(newWord)
console.log(typeof newWord)
already.push(newWord);
}
答案 1 :(得分:1)
在顶部定义已经array
。之所以给出undefined
,是因为代码先到达数组,然后再定义。
var already = [];
var array=['alice','why'];
check(array);
function check(array){
var word = array[0].split("");
again(word)
}
function again(word){
var newWord = word.join("");
console.log(word)
console.log(newWord)
console.log(typeof newWord)
already.push(newWord);
console.log(already)
}
答案 2 :(得分:1)
函数将被提升到顶部,同样适用于变量声明(不是赋值)。在再次调用函数时,已定义的变量尚未定义。在函数中使用之前,声明并初始化变量。
答案 3 :(得分:0)
在使用Activity.overridePendingTransition(...)
之前,应先定义它。
already