Maison  >  Article  >  interface Web  >  Questions d'entretien JavaScript avec Xiaomi_compétences Javascript

Questions d'entretien JavaScript avec Xiaomi_compétences Javascript

WBOY
WBOYoriginal
2016-05-16 16:23:411794parcourir

Questions d'entretien

1.

Copier le code Le code est le suivant :

Veuillez définir une telle fonction
fonction répéter (func, times, wait) {
>
Cette fonction peut renvoyer une nouvelle fonction, par exemple, utilisez
comme ceci var répétéFun = répéter (alerte, 10, 5000)
Appelez cela un plaisir répété (« hellworld »)
Alertera helloworld dix fois, avec un intervalle de 5 secondes à chaque fois

2.

Copier le code Le code est le suivant :

Écrivez une fonction stringconcat, 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 collation

Ces deux questions concernent toutes les fermetures. Sans plus tarder, passons directement au code.

Copier le code Le code est le suivant :

/**
*La première question
* @param func
* @param fois
* @param attends
* @returns {repeatImpl}
​*/
fonction répéter (func, times, wait) {
//Les fonctions anonymes ne sont pas utilisées pour faciliter le débogage
Fonction répéterImpl(){
      var handle,
​​​​​​ _arguments = arguments,
             i = 0;
         handle = setInterval(function(){
             i = i 1;
//Annulez le minuteur lorsque le nombre de fois spécifié est atteint
                if(i === times){
Clearinterval (poignée);
                  revenir ;
            }
                func.apply(null, _arguments);
}, attends);
>
Retour répéterImpl;
>
//Cas de test
var répéterFun = répéter(alerte, 4, 3000);
répéterFun("monde de l'enfer");
/**
*La deuxième question
* @returns {string}
​*/
fonction stringconcat(){
var résultat = [];
Stringconcat.merge.call(null, résultat, arguments);
Renvoie result.join(" ");
>
stringconcat.prefix = fonction(){
var _arguments = [],
​​​​ _this = ceci;
_this.merge.call(null, _arguments, arguments);
Fonction de retour(){
        var _args = _arguments.slice(0);
​​​​ _this.merge.call(null, _args, arguments);
          return _this.apply(null, _args);
};
};
stringconcat.merge = function(array, arrayLike){
var je = 0;
pour (i = 0; i < arrayLike.length; i ){
         array.push(arrayLike[i]);
>
>
//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(result1);
alerte(result2);
alerte(result3);
alerte(result4);
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn