有逼格地判斷陣列是否為空

2021-07-10 18:01:32 字數 1506 閱讀 4107

(啟發自阿里面試)

var arr = ;

// 方法一:普通青年

console.log(arr.length); // 0

// 方法二:bigger青年

console.log( arr == '' ); // true

// 這裡公然用到了隱式轉換,甚是世風日下。。。

既然說到陣列的長度,不妨繼續bb一些坑:

var arr = ;

arr.push(1);

console.log(arr.length); // 顯然是 1

arr['hello'] = 'world';

console.log(arr.length); // ?

答案是

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

> 1
一般這種陣列稱為偽陣列,最常見的就是 arguments 物件。

我們來繼續玩:

var arr = ;

arr[99] = 100;

console.log(arr); // ?

console.log(arr.length); // ?

答案是

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

> [99: 100]

> 100

利用下標就可以騙過 js 的陣列長度,也是醉了。。。

繼續玩:

var arr = [1, 2, 3, 4, 5];

delete arr[1];

console.log(arr); // ?

console.log(arr.length); // ?

答案是

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

。 。

> [1, 2: 3, 3: 4, 4: 5]

> 5

這個故事告訴我們:delete 的確不適用於陣列,還是乖乖地用 splice 吧。。。

什麼?splice 和 slice 傻傻分不清楚?

那麼 substring 和 substr 分清楚了沒?

都沒?還不去溫習功課?!

js 判斷是否為空物件 空陣列

js 判斷是否為空物件 空陣列 當需要判斷引數是否為空時,總希望 js 能夠提供原生的判斷方法,可惜並沒有,只能自己封裝了。isempty function obj 檢驗陣列 if array.prototype.isprototypeof obj obj.length 0 檢驗物件 if obje...

js 判斷是否為空物件 空陣列

判斷引數是否為空函式 isempty function obj 檢驗陣列 if array.prototype.isprototypeof obj obj.length 0 檢驗物件 if object.prototype.isprototypeof obj object.keys obj leng...

js 判斷是否為空物件 空陣列

當需要判斷引數是否為空時,總希望 js 能夠提供原生的判斷方法,可惜並沒有,只能自己封裝了。functionisempty obj if array.prototype.isprototypeof obj obj.length 0 if object.prototype.isprototypeof ...