前端面试心经一.题目

number1:
function _1(){
        console.log(a);
        console.log(b);
        var b=function(){};
        console.log(a);
        console.log(b);
        var a=function(){};
    }

输出结果:....

我的理解:变量的hoisting(提升)

function _11(){
    var a;
    var b;
    console.log(a);//undefined
    console.log(b);//undefined
    b=function(){};
    console.log(a);//undefined
    console.log(b);//Object
    a=function(){};
    
}

 

 代码:


 

 number2:

 先放题目:参考文:http://www.cnblogs.com/littledu/archive/2012/05/19/2508672.html

        :https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript#函数

     arguments正式解释:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments

关于arguments
1.arguments是数组吗?如何将arguments转化为数组?
2.如何从第二项开始转化为数组?

 网版:通过原型连的slice.call(arguments)实现

   function _2(){
        var a=Array.prototype.slice.call(arguments);
        console.log('*********');
        console.log(arguments instanceof Array);
        console.log(a instanceof Array);
        console.log(a.shift());
    }

 

 简单版本:

function toarray(){
    var arr=new Array();
    for(var i= 0,len= arguments.length-1;i<len;i++){
        arr[i]=arguments[i+1];
    }
    return arr;
}

 

好的,解决第二题:

主要考察 arguments call apply 可以参考:http://www.cnblogs.com/sweting/archive/2009/12/21/1629204.html  更详细的研究

Array.prototype.slice2= function (start,end) {
    var start=start||0;
    var end=end||this.length;
    var arr=new Array();
    for(var i=start;i<end;i++){
        arr.push(this[i]);
    }
    return arr;
}
function _4(){
    var _4arr=Array.prototype.slice2.call(arguments,2);
    var _4a=_4arr instanceof Array;
    return _4arr;
}
_4(1,2,3,4,'haha');

 

代码:

number3:

妈蛋写的要死突然屏幕卡了写的都没了...

所以我换另一篇博客写了...待会给链接http://i.cnblogs.com/EditPosts.aspx?postid=4771060

 

转载于:https://www.cnblogs.com/belongcai/p/4761559.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值