湯姆大叔的6道js題目

2022-02-21 19:07:58 字數 3631 閱讀 9527

看湯姆大叔的博文,其中有篇(猛戳這裡)的最後有6道程式設計題,於是我也試試,大家都可以先試試。

還有一種用eval+tostring的實現:12

3vara = [1, 2, 3, 6, 5, 4];

varans = eval('math.max('+ a.tostring() +')');

console.log(ans);// 612

3456

78910

1112

1314

1516

1718

1920

vara = [1, 2, 3, 4, 5, 6];

varlen = a.length;

for(vari = 0; i < len; i++) ;

a[i] = f;

})(num);

}

for(vari = 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

29vara = ;

varb = ;

varc = ;

object.prototype.getlength =function()

returnnum;

};

vararr = [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

15functionfn(n)

fn(5);// 10表示需要的斐波那契數列個數

// 0

// 1

// 1

// 2

// 3

不使用全域性變數,我把它們寫在函式裡了應該算是區域性變數了吧,難道這樣就好了?你怎麼看?12

3456

78910

number.prototype.plus =function(a) ;

number.prototype.minus =function(a) ;

vara = (5).plus(3).minus(6);

console.log(a);// 2

直接在number物件上加擴充套件方法即可,傳說中這樣很不好,but我也想不到更好的辦法了...12

3456

78910

11functionadd(a)

temp.valueof = temp.tostring =function() ;

returntemp;

}

varans = add(2)(3)(4);

console.log(ans);// 9

對valueof和tostring的考察,具體可以參考《valueof和tostring》

另看到一種很飄逸的寫法(來自gaubee):12

3456

78functionadd(num)

add.valueof = add.tostring =function();

varans = 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...