أسئلة المقابلة
واحد،
نسخة الكود كما يلي:
يرجى تحديد مثل هذه الوظيفة
تكرار الوظيفة (func ، الأوقات ، انتظر) {
}
هذه الوظيفة يمكن أن تُرجع وظيفة جديدة ، على سبيل المثال
var repertfun = كرر (تنبيه ، 10 ، 5000)
استدعاء هذا التكرار ("Hellworld")
سوف ينبه HelloWorld عشر مرات ، في كل فاصل زمني هو 5 ثوان
اثنين،
نسخة الكود كما يلي:
اكتب وظيفة stringConcat ، والتي تتطلب
var result1 = stringConcat ("a" ، "b") result1 = "a+b"
var stringConcatwithPrefix = stringConcat.prefix ("Hellworld") ؛
var result2 = stringConcatwithPrefix ("A" ، "B") result2 = "Hellworld+A+B"
محلول الأطباق الجانبية
هذين السؤالين يختبرون إغلاق. دون أن يقول الكثير من الهراء ، ما عليك سوى إدخال الرمز.
نسخة الكود كما يلي:
/**
* السؤال 1
* param func
* Param Times
* param انتظر
* returns {repertimpl}
*/
تكرار الوظيفة (func ، الأوقات ، انتظر) {
// لا يتم استخدام وظائف مجهولة لتسهيل تصحيح الأخطاء
وظيفة تكرار () {
var مقبض ،
_Arguments = الوسيطات ،
أنا = 0 ؛
handle = setInterval (function () {
i = i + 1 ؛
// إلغاء المؤقت عندما يكون عدد المرات المحددة
if (i === times) {
ClearInterval (مقبض) ؛
يعود؛
}
func.apply (null ، _arguments) ؛
}،انتظر)؛
}
إرجاع تكرار.
}
// حالات الاختبار
var repertingfun = كرر (تنبيه ، 4 ، 3000) ؛
REPERFUN ("Hellworld") ؛
/**
* السؤال 2
* returns {string}
*/
وظيفة stringConcat () {
var result = [] ؛
StringConcat.merge.call (NULL ، النتيجة ، الوسائط) ؛
return result.join ("+") ؛
}
StringConcat.prefix = function () {
var _arguments = [] ،
_ هذا = هذا ؛
_this.merge.call (null ، _arguments ، الوسيطات) ؛
وظيفة الإرجاع () {
var _args = _arguments.slice (0) ؛
_this.merge.call (null ، _args ، الوسيطات) ؛
return _this.apply (null ، _args) ؛
} ؛
} ؛
StringConcat.merge = function (Array ، Arraylike) {
var i = 0 ؛
لـ (i = 0 ؛ i <arraylike.length ؛ i ++) {
Array.push (Arraylike [i]) ؛
}
}
// حالات الاختبار
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"
تنبيه (النتيجة 1) ؛
تنبيه (النتيجة 2) ؛
تنبيه (النتيجة 3) ؛
تنبيه (النتيجة 4) ؛