Questions d'entrevue
un,
La copie de code est la suivante:
Veuillez définir une telle fonction
Fonction Repeat (Func, Times, Wait) {
}
Cette fonction peut renvoyer une nouvelle fonction, par exemple
var répétéfun = répéter (alerte, 10, 5000)
Appelez cette répétition ("Hellworld")
Alertera Helloworld dix fois, chaque intervalle de temps est de 5 secondes
deux,
La copie de code est la suivante:
Écrivez une fonction StringConcat, ce qui nécessite
var result1 = stringConcat ("a", "b") result1 = "a + b"
var stringConcatwithprefix = stringConcat.prefix ("HellWorld");
var result2 = stringConcatwithprefix ("a", "b") result2 = "Hellworld + a + b"
Solution de plats d'accompagnement
Ces deux questions testent les fermetures. Sans dire beaucoup de bêtises, entrez simplement le code.
La copie de code est la suivante:
/ **
* Question 1
* @param func
* @param fois
* @param attendez
* @returns {répétitimpl}
* /
Fonction Repeat (Func, Times, Wait) {
// Aucune fonction anonyme n'est utilisée pour faciliter le débogage
function répétitimpl () {
poignée var,
_arguments = arguments,
i = 0;
handle = setInterval (function () {
i = i + 1;
// Annuler la minuterie lorsque le nombre de fois spécifié
if (i === fois) {
ClearInterval (manche);
retour;
}
func.Apply (null, _arguments);
},attendez);
}
retourne répétitiml;
}
// les cas de test
var répétitif = répéter (alerte, 4, 3000);
RepeatFun ("Hellworld");
/ **
* Question 2
* @returns {String}
* /
fonction stringConcat () {
var result = [];
StringConcat.merge.Call (null, résultat, arguments);
return result.join ("+");
}
stringConcat.prefix = function () {
var _arguments = [],
_Cis = this;
_This.merge.call (null, _arguments, arguments);
return function () {
var _args = _arguments.slice (0);
_This.merge.call (null, _args, arguments);
return _This.Apply (null, _args);
};
};
stringConcat.merge = fonction (array, arraylike) {
var i = 0;
for (i = 0; i <arraylike.length; i ++) {
array.push (arraylike [i]);
}
}
// les cas de test
var result1 = stringConcat ("a", "b"); // result1 = "a + b"
var result3 = stringConcat ("c", "d"); // result1 = "a + b"
var stringConcatwithprefix = stringConcat.prefix ("HellWorld");
var stringConcatwithprefix1 = stringConcat.prefix ("HellWorld1");
var result2 = stringConcatwithprefix ("a", "b"); // result2 = "Hellworld + a + b"
var result4 = stringConcatwithprefix1 ("c", "d"); // result2 = "Hellworld + a + b"
alerte (résultat1);
alerte (résultat2);
alerte (résultat3);
alerte (résultat4);