zoukankan      html  css  js  c++  java
  • 前端面试(!!!)

     function pms1() {
                        return new Promise(function(resolve, reject) {
                            setTimeout(function() {
                                console.log('执行任务1');
                                resolve('执行任务1成功');
                            }, 2000);
                        });
                    }

    function pms3() {
                        return new Promise(function(resolve, reject) {
                            setTimeout(function() {
                                console.log('执行任务3');
                                resolve('执行任务3成功');
                            }, 2000);
                        });
                    }
                    Promise.all([pms1(), pms2(), pms3()]).then(function(data) {
                        console.log(data);
                        console.log({}.toString.call(data));
                    })
    
     $(function() {
                    function runAsync() {
                        var def = $.Deferred();
                        setTimeout(function() {
                            console.log('执行完成');
                            def.resolve('随便什么数据');
                        }, 2000);
                        return def.promise();
                    }
                    var pms=runAsync();
                    pms.then(function(data) {
                        console.log(data)
                    });
                    //pms.resolve('我穿越了!');    //这一句会报错jquery-3.1.1.min.js:2 Uncaught TypeError: pms.resolve is not a function
                })
    

      

     

    flex;align-items: center;justify-content: center

     

      


    instanceof 用于判断一个变量是否某个对象的实例,或用于判断一个变量是否某个对象的实例;
    constructor 用于判断一个变量的原型,constructor 属性返回对创建此对象的数组函数的引用。
    Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。


    $(document).on('click', '#example', clickHandler);

    此时表示将 id="example" 的元素的鼠标单击事件委托绑定到了 document 元素上,当目标元素(即 id="example" 的元素)触发鼠标单击事件的时候,该事件就会冒泡到 document 元素上,从而触发事件处理程序。

    调用事件对象的 .stopPropagation() 方法可以阻止事件冒泡:

    调用事件对象的 .preventDefault() 方法可以阻止事件的默认行为:

    事件节流

    浏览器中有几个事件会频繁触发,比如 scroll, resize, mousemove 等,那么给这些事件绑定的事件处理程序也会跟着频繁地执行,导致页面反应迟钝,要解决这个问题,需要节流事件,减少事件处理程序执行的频率:

    var timer = 0; // 使用一个定时器
    $(window).on('scroll', function() {
      if (!timer) {
        timer = setTimeout(function() {
          // Do something
          timer = 0;
        }, 200);
      }
    });


    移动端:
    if(!e.touches) {    
    //兼容移动端
    var x = e.clientX; }
    else {    
    //兼容PC端
    var x = e.touches[0].pageX;
    }
    //var x = e.touches[0].pageX || e.clientX; //鼠标横坐标var x




    那 for-of 到底可以干什么呢?

    • 跟 forEach 相比,可以正确响应 break, continue, return。

    • for-of 循环不仅支持数组,还支持大多数类数组对象,例如 DOM nodelist 对象。

    • for-of 循环也支持字符串遍历,它将字符串视为一系列 Unicode 字符来进行遍历。

    • for-of 也支持 Map 和 Set (两者均为 ES6 中新增的类型)对象遍历。

    总结一下,for-of 循环有以下几个特征:

    • 这是最简洁、最直接的遍历数组元素的语法。

    • 这个方法避开了 for-in 循环的所有缺陷。

    • 与 forEach 不同的是,它可以正确响应 break、continue 和 return 语句。

    • 其不仅可以遍历数组,还可以遍历类数组对象和其他可迭代对象。

  • 相关阅读:
    Flash 终将谢幕:微软将于年底( 2020 年 )停止对 Flash 的支持
    分布式id生成方案总结
    如何设计一个亿级网关(API Gateway)?
    服务之间的调用为啥不直接用 HTTP 而用 RPC?
    Dubbo 总结:关于 Dubbo 的重要知识点
    CAP理论解读
    单点登录(SSO)的设计与实现
    入职微软三个月把老板炒了,七个月自己跑路是一种怎样的体验?
    有关链表的小技巧,我都给你总结好了
    排序算法入门之「选择排序」
  • 原文地址:https://www.cnblogs.com/libin-1/p/6817234.html
Copyright © 2011-2022 走看看