Interviewfragen
eins,
Die Codekopie lautet wie folgt:
Bitte definieren Sie eine solche Funktion
Funktion wiederholen (Func, Times, Wait) {
}
Diese Funktion kann beispielsweise eine neue Funktion zurückgeben
var repeatedfun = repeat (alarm, 10, 5000)
Nennen Sie dies wiederholt ("Hellworld")
Wird HelloWorld zehn Mal aufmerksam sein, jedes Zeitintervall beträgt 5 Sekunden
zwei,
Die Codekopie lautet wie folgt:
Schreiben Sie eine Funktionsstringconcat, die erfordert
var result1 = stringConcat ("a", "b") result1 = "a+b"
var StringConcatWithPrefix = stringConcat.prefix ("HellWorld");
var result2 = StringConcatWithPrefix ("A", "B") result2 = "Hellworld+A+B"
Beilagenlösung
Diese beiden Fragen testen Schließungen. Ohne viel Unsinn zu sagen, geben Sie einfach den Code ein.
Die Codekopie lautet wie folgt:
/**
* Frage 1
* @param func
* @Param Times
* @param warte
* @returns {repualtimpl}
*/
Funktion wiederholen (Func, Times, Wait) {
// Es werden keine anonymen Funktionen verwendet, um das Debuggen zu erleichtern
Funktion repepimpl () {
var Griff,
_Arguments = Argumente,
i = 0;
handle = setInterval (function () {
i = i + 1;
// Timer abbrechen, wenn die angegebene Anzahl oft
if (i === mal) {
ClearInterval (Handle);
zurückkehren;
}
func.apply (null, _argumente);
},Warten);
}
Wiederholung zurückgeben;
}
// Testfälle
var repeatfun = repep (alarm, 4, 3000);
repepfun ("Hellworld");
/**
* Frage 2
* @returns {String}
*/
FunktionsstringConcat () {
var result = [];
StringConcat.merge.call (NULL, Ergebnis, Argumente);
return result.join ("+");
}
stringconcat.prefix = function () {
var _arguments = [],
_this = this;
_this.merge.call (null, _argumente, argumente);
return function () {
var _args = _argumente.slice (0);
_this.merge.call (null, _args, argumente);
return _this.apply (null, _args);
};
};
stringconcat.merge = function (array, arrayartig) {
var i = 0;
für (i = 0; i <arraylike.length; i ++) {
Array.push (Array ähnlich [i]);
}
}
// Testfälle
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"
Alarm (Ergebnis1);
Alarm (Ergebnis2);
Alarm (Ergebnis3);
Alarm (Ergebnis4);