判斷是否為array的方法

2021-09-26 18:54:59 字數 1577 閱讀 4699

第一種:instanceof,此方法返回的是乙個布林值

var a=[1,2,34,5];

console.log(a instanceof array);

//true

第二種:es5定義了array.isarray:

var arr=[1,5];

console.log(array.isarray(arr));

//true

第三種:constructor,用的是原型鏈的方法

var m=[1,2,5,6,3];

console.log(m.constructor==array);

//true

第四種:使用object.prototype.tostring.call(arr)===』[object array]'

用tostring獲取每個物件的型別:

boolean:

true.tostring()

//true

數字:

var num=12;

num.tostring();

//'12'

字串:

var str="字串";

str.tostring();

//"字串"

物件:

var obj={};

obj.tostring();

//"[object object]"

函式:

var fun=function(){};

fun.tostring();

// "function(){}"

呼叫tostring時會將this物件的[[class]]屬性值拿到,而這個屬性值就是該物件的真實型別。

[[class]]:乙個內部屬性,字串值,表示物件的型別。只有tostring這乙個方法可以拿到。

總結:呼叫tostring時會將this物件的[[class]]屬性值拿到,而這個屬性值就是該物件的真實型別。

又因為call能夠顯示的修改this指標的物件,所以用call將object內部的this物件指向我們要檢測的變數自身。

從而再通過tostring拿到變數的[[class]]值。

function isarray(o) 

var arr=[2,5,6,8];

var obj=;

var fn = function () {};

console.log(isarray(arr));

console.log(isarray(obj));

console.log(isarray(fn));

//[object array]

//[object object]

//[object function]

PHP 判斷陣列是否為空的方法

1.isset功能 判斷變數是否被初始化 說明 它並不會判斷變數是否為空,並且可以用來判斷陣列中元素是否被定義過 注意 當使用isset來判斷陣列元素是否被初始化過時,它的效率比array key exists高4倍左右 a a c if isset a echo a 未被初始化 if isset ...

php判斷是否為json格式的方法

首先要記住json encode返回的是字串,而json decode返回的是物件 判斷資料不是json格式 如下 function is not json str 判斷資料是合法的json資料 php版本大於5.3 如下 function is json string json last erro...

判斷是否為素數的高效方法(Python)

演算法一 針對輸入的數字x,我們可以遍歷從2到x 1這個區間中的數,如果x能被這個區間中任意乙個數整除,那麼它就不是質數。def is prime1 x for i in range 2,x if num i 0 return false return true演算法二 對演算法一的優化,事實上只需...