js 编程

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);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值