Pertanyaan wawancara
satu,
Salinan kode adalah sebagai berikut:
Harap tentukan fungsi seperti itu
function repeat (func, Times, tunggu) {
}
Fungsi ini dapat mengembalikan fungsi baru, misalnya
var berulang = ulangi (peringatan, 10, 5000)
Sebut ini berulang ("Hellworld")
Akan mengingatkan HelloWorld sepuluh kali, setiap interval waktu adalah 5 detik
dua,
Salinan kode adalah sebagai berikut:
Tulis fungsi stringConcat, yang membutuhkan
var result1 = stringCcat ("a", "b") result1 = "a+b"
var StringCcatWithPrefix = StringConcat.prefix ("HellWorld");
var result2 = stringCcatWithPrefix ("a", "b") result2 = "hellworld+a+b"
Solusi lauk
Dua pertanyaan ini tes penutupan. Tanpa mengatakan banyak omong kosong, cukup masukkan kode.
Salinan kode adalah sebagai berikut:
/**
* Pertanyaan 1
* @param func
* @param Times
* @param tunggu
* @returns {REURNIMPL}
*/
function repeat (func, Times, tunggu) {
// Tidak ada fungsi anonim yang digunakan untuk memfasilitasi debugging
function REEPERIMPL () {
pegangan var,
_Arguments = argumen,
i = 0;
handle = setInterval (function () {
i = i + 1;
// Batalkan timer saat jumlah kali yang ditentukan
if (i === kali) {
ClearInterval (pegangan);
kembali;
}
func.Apply (null, _Arguments);
},Tunggu);
}
mengembalikan RepeatImpl;
}
// Kasus uji
var RETEALFUN = Ulangi (Peringatan, 4, 3000);
ulangi ("hellworld");
/**
* Pertanyaan 2
* @returns {string}
*/
function stringccat () {
var result = [];
StringCcat.merge.call (null, hasil, argumen);
return result.join ("+");
}
StringCcat.prefix = function () {
var _Arguments = [],
_THIS = ini;
_this.merge.call (null, _arguments, argumen);
return function () {
var _Args = _Arguments.slice (0);
_this.merge.call (null, _args, argumen);
return _this.apply (null, _args);
};
};
StringCcat.merge = function (array, array like) {
var i = 0;
untuk (i = 0; i <array like.length; i ++) {
array.push (seperti array [i]);
}
}
// Kasus uji
var result1 = stringConcat ("a", "b"); // result1 = "a+b"
var result3 = stringConcat ("c", "d"); // result1 = "a+b"
var StringCcatWithPrefix = StringConcat.prefix ("HellWorld");
var StringCcatWithPrefix1 = StringConcat.prefix ("HellWorld1");
var result2 = StringConcatWithPrefix ("A", "B"); // result2 = "HellWorld+A+B"
var result4 = StringConcatWithPrefix1 ("C", "D"); // result2 = "HellWorld+A+B"
waspada (result1);
waspada (result2);
waspada (result3);
waspada (result4);