看湯姆大叔的博文,其中有篇(猛戳這裡)的最後有6道程式設計題,於是我也試試,大家都可以先試試。
還有一種用eval+tostring的實現:12
3var
a = [1, 2, 3, 6, 5, 4];
var
ans = eval(
'math.max('
+ a.tostring() +
')'
);
console.log(ans);
// 6
12
3456
78910
1112
1314
1516
1718
1920
var
a = [1, 2, 3, 4, 5, 6];
var
len = a.length;
for
(
var
i = 0; i < len; i++) ;
a[i] = f;
})(num);
}
for
(
var
i = 0; i < len; i++)
a[i]();
// 1
// 2
// 3
// 4
// 5
// 6
我覺得這跟給n個a標籤,彈出相應標籤對應的編號是乙個型別的題,用閉包儲存變數到記憶體即可。12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
2728
29var
a = ;
var
b = ;
var
c = ;
object.prototype.getlength =
function
()
return
num;
};
var
arr = [a, b, c];
arr.sort(
function
(a, b) );
console.log(arr);
這題不難,陣列排序,當然是sort,排序條件是物件的屬性個數,可以寫個函式計算,注意可能要用hasownproperty判斷下。12
3456
(
function
(a, b) )(-1, 1);
這題沒看明白,是打出斐波那契數列的前n項麼?還是第n項...12
3456
78910
1112
1314
15function
fn(n)
fn(5);
// 10表示需要的斐波那契數列個數
// 0
// 1
// 1
// 2
// 3
不使用全域性變數,我把它們寫在函式裡了應該算是區域性變數了吧,難道這樣就好了?你怎麼看?12
3456
78910
number.prototype.plus =
function
(a) ;
number.prototype.minus =
function
(a) ;
var
a = (5).plus(3).minus(6);
console.log(a);
// 2
直接在number物件上加擴充套件方法即可,傳說中這樣很不好,but我也想不到更好的辦法了...12
3456
78910
11function
add(a)
temp.valueof = temp.tostring =
function
() ;
return
temp;
}
var
ans = add(2)(3)(4);
console.log(ans);
// 9
對valueof和tostring的考察,具體可以參考《valueof和tostring》
另看到一種很飄逸的寫法(來自gaubee):12
3456
78function
add(num)
add.valueof = add.tostring =
function
();
var
ans = add(3)(4)(5)(6);
// 18
alert(ans);
一道前端JS題目
做過很多前端筆試題,有些題看起來簡單,就是讀程式寫結果,但要麼做錯,要麼對答案不確定,這裡找到一道比較綜合的題目 function foo 1 函式內定義了乙個函式變數 return this foo.getname function 2 建立了foo的靜態屬性 foo.prototype.getn...
JS練習 prototype的一道題目
1.分別對例項的name賦值,並沒有涉及到原型的name屬性 var fun function fun.prototype.name peter var a new fun var b new fun a.name jack b.name tom console.log a.name jack co...
一道超級複雜的js題目
先看以下 1 function foo 3return this 4 5 foo.getname function 6 foo.prototype.getname function 7var getname function 8function getname 910 foo.getname 11g...