คำถามสัมภาษณ์
หนึ่ง,
การคัดลอกรหัสมีดังนี้:
โปรดกำหนดฟังก์ชั่นดังกล่าว
ฟังก์ชั่นทำซ้ำ (func, ครั้ง, รอ) {
-
ฟังก์ชั่นนี้สามารถส่งคืนฟังก์ชั่นใหม่ได้เช่น
var recodyFun = ทำซ้ำ (แจ้งเตือน, 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 {repeatimpl}
-
ฟังก์ชั่นทำซ้ำ (func, ครั้ง, รอ) {
// ไม่มีฟังก์ชั่นที่ไม่ระบุชื่อเพื่ออำนวยความสะดวกในการดีบัก
ฟังก์ชั่น repeatimpl () {
ด้ามจับ var,
_arguments = อาร์กิวเมนต์
i = 0;
handle = setInterval (function () {
i = i + 1;
// ยกเลิกตัวจับเวลาเมื่อจำนวนครั้งที่ระบุ
ถ้า (i === ครั้ง) {
ClearInterval (ด้ามจับ);
กลับ;
-
func.apply (null, _arguments);
},รอ);
-
ส่งคืน repeatimpl;
-
// กรณีทดสอบ
var repeafun = ทำซ้ำ (แจ้งเตือน, 4, 3000);
repeatfun ("Hellworld");
-
* คำถามที่ 2
* @returns {String}
-
ฟังก์ชัน StringConcat () {
var result = [];
Stringconcat.merge.call (null, ผลลัพธ์, อาร์กิวเมนต์);
return result.join ("+");
-
stringconcat.prefix = function () {
var _arguments = []
_ นี่ = สิ่งนี้;
_this.merge.call (null, _arguments, อาร์กิวเมนต์);
return function () {
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 stringcatwithprefix1 = 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);