小纪

作者: 你若像风 | 来源:发表于2019-05-30 19:06 被阅读0次
    1. 函数中的 arguments 是数组吗?若不是,如何将它转化为真正的数组
    var func = function() {
        console.log(Array.from(arguments))
        console.log([...arguments]) 
        console.log([].slice.call(arguments));
    }
    func();
    
    2、写出以下代码的输出顺序,考察javascript的运行机制,宏任务和微任务。
    async function async1() {
      console.log('async1 start');
      await async2();
      console.log('async1 end');
    }
    async function async2() {
      console.log('async2');
    }
    
    console.log('script start');
    setTimeout(function() {
        console.log('setTimeout');
    }, 0);  
    async1();
    new Promise(function(resolve) {
        console.log('promise1');
        resolve();
      }).then(function() {
        console.log('promise2');
    });
    console.log('script end');
    
    答案:
    script start
    async1 start
    async2
    promise1
    script end
    promise2
    async1 end
    setTimeout
    
    还有最新V8和旧版本V8展示结果不一样promise2 和async1 end略有互换
    
    3、实现一个节流函数
    var lastTime = 0;
    var func = function(gapTime) {
        var nowTime = new Date().getTime();
        if(nowTime - lastTime > gapTime || !lastTime) {
            lastTime = nowTime ;
            search();
        }
    }
    var search = function() {
        //
    }
    $("#id").on("click", function() {
       func(1000); 
    })
    
    4、实现记录某个函数被调用的次数,使用闭包实现
    function getTime () {
        var time = 0;
        return function() {
            return ++time;
        }
    }
    var func1 = getTime();
    func1();
    func1();
    
    5、实现函数实现完全随机排序
    function sort() {
          var result = [];
          var arr = [1, 2, 3, 324, 4, 5, 6, 7, 8, 9, 10, 23, 12, 65];
          while(arr.length) {
              var index = Math.floor(Math.random() * arr.length);
              result.push(arr[index]);
              arr.splice(index, 1);
          }
          return result;
      }
      console.log('result::', sort());
    
    6、打印结果,考察== 和转换
        if([]==false){console.log(1)};
        if({}==false){console.log(2)};
        if([]){console.log(3)}
        if([1]==[1]){console.log(4)}
    

    相关文章

      网友评论

          本文标题:小纪

          本文链接:https://www.haomeiwen.com/subject/bjcbtctx.html