面试题

2018-03-06  本文已影响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/
上一篇 下一篇

猜你喜欢

热点阅读