1.Array 数组中无remove 方法,但有 splice(index,len);
1.1 初始化一个数组:var attr=new Array(); attr=[1,2,3];
1.2Java中初始化一个数组 int[] attr={-1,2,3}; 用花括号扩起来。
2.找出数组中重复出现的元素。
2.1 首先通过数组排序,判断相邻两项是否相等,若相等,则存入该数到一个新数组,并且新数组中不存在重复。
通过indexOf(item)判断新数组是否有重复。最后返回新数组,其中即为重复出现元素。
3.找出函数定义错误。(牛客网js 能力测试)
function functions(flag) {
if (flag) {
function getValue() { return 'a'; }
} else {
function getValue() { return 'b'; }
}
return getValue();
}
参考代码
注:主要是考察函数两种定义的理解:函数声明和表达式,这个错误和浏览器有关并不是所有浏览器都会有问题。
function functions(flag) {
if (flag) {
var getValue = function() { return 'a'; }
} else {
var getValue = function() { return 'b'; }
}
return getValue();
}
3.将string 类型数据转换为 number 可按照进制转换
var str=“1000” ; parseInt(str,2); // =====》8
var str=“010” ; parseInt(str,8); // =====》8
或者number 转换为n进制的 string 格式
var num=65; num.toString(2);========>"01000001"
4.判断对象构造函数是否拥有该属性。
找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)
obj.hasOwnProperty(key)
function iterate(obj) {
var str=[];
for(var key in obj){
if(obj.hasOwnProperty(key))
str.push(key+": "+obj[key]);
}
return str;
}
var C = function() {this.foo = 'bar'; this.baz = 'bim';};
C.prototype.bop = 'bip';
var it=iterate(new C());
console.log(it);
5. 伪数组转换为数组。(通过slice 方法)
var arr=[1,2,3];
var re=arr.slice();
var obj=
{
0: 'beet',
1: 10,
2: 157,
length:3
}
// 伪数组转化为数组
var fakeArr=[].slice.call(obj);
console.log(fakeArr);
Array.prototype.myslice=function(){
var start=0;
var end=this.length; //为当前对象的长度
if(arguments.length==1){
start=arguments[0];
}
else if(arguments.length==2){
start=arguments[0];
end=arguments[1];
}
var temp=[];
for(var i=start;i<end;i++){
temp.push(this[i]);
}
return temp;
}
var ss=Array.prototype.myslice.call(obj,0,2);
console.log(ss);