最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

怎样判断一个JavaScript变量是array还是obiect答案代码详解

来源:动视网 责编:小采 时间:2020-11-27 20:15:03
文档

怎样判断一个JavaScript变量是array还是obiect答案代码详解

怎样判断一个JavaScript变量是array还是obiect答案代码详解:怎样判断一个JavaScript变量是array还是obiect? 答案: 1、如果你只是用typeof来检查该变量,不论是array还是object,都将返回objec'。 此问题的一个可行的答案是是检查该变量是不是object,并且检查该变量是否有数字长度(当为空array时长度也可
推荐度:
导读怎样判断一个JavaScript变量是array还是obiect答案代码详解:怎样判断一个JavaScript变量是array还是obiect? 答案: 1、如果你只是用typeof来检查该变量,不论是array还是object,都将返回objec'。 此问题的一个可行的答案是是检查该变量是不是object,并且检查该变量是否有数字长度(当为空array时长度也可


怎样判断一个JavaScript变量是array还是obiect?

答案:
1、如果你只是用typeof来检查该变量,不论是array还是object,都将返回‘objec'。
此问题的一个可行的答案是是检查该变量是不是object,并且检查该变量是否有数字长度(当为空array时长度也可能为0)。
然而,参数对象【arguments object】(传给制定函数的所有参数),也可能会适用于上述方法,技术上来说,参数对象并不是一个array。
此外,当一个对象有a.length属性的时候,这个方法也不成立。

// Real array 正在的数组 
var my_array = []; 
// Imposter! 冒名顶替的! 
var my_object = {}; 
my_object.length = 0; 
// Potentially faulty 潜在的错误 
function is_this_an_array(param) { 
if (typeof param === 'object' && !isNaN(param.length)) { 
console.log('Congrats, you have an array!'); 
} 
else { 
console.log('Bummer, not an array'); 
} 
} 
// Works 成功 
is_this_an_array(my_array); 
// Works, but is incorrect 成功了,但是不正确 
is_this_an_array(my_object);


2、回答这个问题的另一个答案是用一个更加隐蔽的方法,调用toString( )方法试着将该变量转化为代表其类型的string。
该方法对于真正的array可行;参数对象转化为string时返回[object Arguments]会转化失败;此外,
对于含有数字长度属性的object类也会转化失败。

// Real array 真正的数组 
var my_array = []; 
// Imposter! 冒名顶替的! 
var my_object = {}; 
my_object.length = 0; 
// Rock solid 坚如磐石(检验函数) 
function is_this_an_array(param) { 
if (Object.prototype.toString.call(param) === '[object Array]') { 
console.log('Congrats, you have an array!'); 
} 
else { 
console.log('Bummer, not an array'); 
} 
} 
// Works 成功了 
is_this_an_array(my_array); 
// Not an array, yay! 不是数组(array)! 
is_this_an_array(my_object);


3、此外,在可能不可靠的多框架DOM环境中,instanceof是个完美合适的操作。

var my_array = []; 
if (my_array instanceof Array) { 
console.log('Congrats, you have an array!'); 
}


4、对于Javascript 1.8.5(ECMAScript 5),变量名字.isArray( )可以实现这个目的

var my_array = []; 
if (Array.isArray(my_array)) { 
console.log('Congrats, you have an array!'); 
}

文档

怎样判断一个JavaScript变量是array还是obiect答案代码详解

怎样判断一个JavaScript变量是array还是obiect答案代码详解:怎样判断一个JavaScript变量是array还是obiect? 答案: 1、如果你只是用typeof来检查该变量,不论是array还是object,都将返回objec'。 此问题的一个可行的答案是是检查该变量是不是object,并且检查该变量是否有数字长度(当为空array时长度也可
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top