面试题

作者: 糯米小馒头 | 来源:发表于2018-03-06 14:45 被阅读0次

    二维数组旋转90°

    自己写的,感觉很low,如果想到更好的方法,再更新

    var Array1=[
                    [1,2,3,4],
                    [5,6,7,8],
                    [1,2,3,4]   
                ];
            var cur=0;
            var timer=setInterval(function(){
                for (var i=0;i<Array1.length;i++) {         
                    
                    if(cur==Array1[i].length-1){
                        clearInterval(timer);
                    }
                    document.write(Array1[i][cur]+",")
                }
                cur++;
                document.write("<br />")
                
            },100);
    

    查找某一个字符出现的次数

    方法一

    function patch(re,s){
              re=eval("/"+re+"/ig")
              return s.match(re).length;
            }
            
            var s = 'maomaomoaotttt';
            alert(patch('m',s));
    

    数组去重

        var ary=[1,2,3,3,3,4,45,5,6,7,8,9,0,8,7,6,5,43,2,1];
            
            for (var i=0;i<ary.length;i++) {
                for (var j=i+1;j<ary.length-1;j++) {
                    if(ary[i]==ary[j]){
                         ary.splice(j,1);
                         j--;
                    }
                }
            }
            console.log(ary);
    

    深度拷贝数组

    es6新写法

    var arr = [1,2,3,4,5];
    var [ ...arr2 ] = arr;
    arr[2] = arr.length;
    console.log(arr2);
    

    ajax请求方式:

    get、post、jsonp、delete、put、head。
    

    js的库和类有什么区别

    后续补上
    

    js实现异步的操作有哪些

    简单说几个:
      1.利用setTimout实现异步
      2.使用Promise对象
      3.动态创建script标签
      4.利用script标签提供的async
      5.还有ES6里面async函数,使得异步操作变得更加方便
    

    js 的数据类型

    ES5:的基本数据类型,Undefined,Null,Number,String,Boolean。引用类型,Object
    
    ES6:新增了数据类型Symbol,表示独一无二的值。
    

    项目做过哪些性能优化

    减少 HTTP 请求数
    
    减少 DNS 查询
    
    使用 CDN
    
    避免重定向
    
    图片懒加载
    
    减少 DOM 元素数量
    
    减少 DOM 操作
    
    使用外部 JavaScript 和 CSS
    
    压缩 JavaScript 、 CSS 、字体、图片等
    
    优化 CSS Sprite
    
    使用 iconfont
    
    字体裁剪
    
    多域名分发划分内容到不同域名
    
    尽量减少 iframe 使用
    
    避免图片 src 为空
    
    把样式表放在 中
    
    把脚本放在页面底部
    
    欢迎补充。。。
    

    页面导入样式时,使用link和@import有什么区别

    区别1:`link`是XHTML标签,除了加载CSS外,`@import`属于CSS范畴,只能加载CSS。
    

    css还可以定义RSS等其他事务;

    区别2:`link`引用CSS时,在页面载入时同时加载;`@import`需要页面网页完全载入以后加载。
    
    区别3:`link`是XHTML标签,无兼容问题;`@import`是在CSS2.1提出的,低版本的浏览器不支持。
    
    区别4:`link`支持使用Javascript控制DOM去改变样式;而`@import`不支持。
    
    for (var i=1;i<=3;i++) {
                    setTimeout(function(){
                        console.log(i) //输出4
                    },0)
                }
    

    let const与var的区别

    var:1、可以重复声明。2、不支持块级作用域。
    let:2、在同一个作用域下不可以重复声明 。2、支持块级作用域let定义的变量不能被提前声明
    

    箭头函数

    http和https的区别

    post和get的区别

    https://sunshinevvv.coding.me/blog/2017/02/09/HttpGETv.s.POST/
    

    相关文章

      网友评论

          本文标题:面试题

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