阿里笔试题
1、//请补全下面的函数,仅当p为数组时返回true.
//可给出多种实现方式,每种实现方式不一定完美,如果不完美,需要说明每种实现的限制
function isArray(p) {
//你的代码在这里
}
这个题有人可能用instanceof,但是会有不兼容,在多个frame中。其实很简单:
function isArray(p){ return(Object.prototype.toString.call(p).slice(8,-1)==="Array"); }
2、data-’属性的作用是什么?
data-为前端开发者提供自定义的属性,这些属性集可以通过对象的dataset属性获取,不支持该属性的浏览器可以通过getAttribute方法获取。ppk提到过使用rel属性,lightbox库推广了rel属性,HTML5提供了data-做替代,这样可以更好地使用自定义的属性。
请编写一段程序,将一个对象和它直接、间接引用的所有对象的属性字符串放入一个数组。
如
var o = {a:1,{b:2,c:{d:1}}}
这里o经过处理后,应该得到
["a","b","c","d"]
我的代码:
function findkey(obj,a){ for(key in obj){ a.push(key); findkey(obj[key],a); } } var o={a:1,b:{c:2,d:{e:5}}}; var arry=[]; findkey(o,arry); alert(arry);