阿里基礎面試題

2021-10-01 07:41:14 字數 1558 閱讀 8564

前面的話

分享幾題阿里的基礎面試題,題目來自小柒看的一場直播課上的。解析

(1)下面的**輸出結果

var test =

(function

(a)}

(function

(a,b)(1

,2))

);console.

log(

test(4

));

解析:

最後console.log(test(4)),4傳給上面的引數b,最後結果 1+ 4 = 5。

(2)不使用迴圈,如何讓長度為100的陣列的元素為相應的索引。

解析:這題有很多解法:定時器、遞迴等,但是面試官其實最想要的是陣列的map方法。

這裡直接給出使用map方法實現的過程:

var crr =

newarray

(100).

join

(',').

split

(',');

crr = crr.

map(

function

(item, index)

) console.

log(crr)

;

因為map方法只會將陣列中有值的項進行操作。所以如果只定義乙個100長度的陣列map是不起作用的。先用join方法將陣列轉為全為逗號的字串,再用split方法將字串以,進行分割,轉為陣列。這樣陣列就元素就全為『,』,解決了陣列值為空的問題。

(3)如何優雅的實現陣列亂序(洗牌演算法)?

解析:這題考查的同樣是陣列的方法:sort()。

var arr =[4

,1,6

,7,5

,6,9

,8];

arr.

sort

(function

(a, b)

) console.

log(arr)

;

隨機生成0.01 ~0.99 的數,比0.5大返回1,表示a>b不交換位置;比0.5小,返回-1,表示a(4)如何優雅的計算出陣列前十位的和?

這裡考查的是陣列的reduce方法

var arr =[1

,2,3

,4,5

,6,7

,8,9

,10,11

,12,13

];// 先擷取前10位,再使用reduce方法

arr = arr.

splice(0

,10).

reduce

(function

(pre, crr, index,array)

) console.

log(arr)

;

總結:前面都是考查的一些高階函式的使用,陣列的5個迭代方法都屬於高階函式。 詳細了解高階函式

阿里面試題

1 請寫出以下 執行結果。var x 1,y 0,z 0 function add x y add x function add x z add x x 1 y 4 z 42 請寫出以下 執行結果。var num 1 var myobject console.log this.num sub fun...

基礎面試題

答 物件導向的特徵主要有以下幾個方面 1.抽象 抽象就是忽略乙個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象 二是資料抽象。2.繼承 繼承是一種聯結類的層次模型,並且允許和鼓勵類...

基礎面試題

公有方法。整個程式都可以訪問 私有方法。只有這個類可以訪問 受保護級別。這個包中的類及子類都可訪問 無修飾符時只向同乙個包中的類訪問 許可權限制 private default protected public 被public修飾的變數 public string s 被private修飾的變數 p...