面试的解决:2017.7.28

 

试题

1,cookie,sessionstorge localstorage的区别和应用场景。

  1. 回答:大下,cookie:客户端和服务器端双向交互,sessionstorage和localstorage则不会,而且内存比较大。同是保存在浏览器中。sessionstorage会话缓存。关闭窗口就没有。localstorage关闭浏览器也一直存在===》那安全性问题呢。不要使用localStorage方式存储敏感信息
  2.  两者都是仅在客户端(即浏览器)中保存,不参与和服务器的通信,而且,sessionstorage不能多窗口的共享,而localstorage则可以多窗口共享。应用场景,

2,call apply bind的区别

回答:http://web.jobbole.com/83642/

  1. apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;apply是数组形式。
  2. apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文;
  3. apply 、 call 、bind 三者都可以利用后续参数传参;
  4. bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用

3,数组去重,取重 (js jq) 还有es6的数组去重。

es6
var arr = [1,2,3,5,2,1]  
[...new Set(arr)]

es6
var arr = [1,3,1,4,1,5,6,3,1,2];
   Array.from(new Set(arr));
js
var acc = [];
for(var i=0;i<arr.length;i++){
    if(acc.indexof(arr[i])==-1){
        acc.push(arr[i])
    }
        return acc;
}
jq
var yearArray = new Array(2009, 2009, 2010, 2010, 2009, 2010);  
$.unique(yearArray); 
$.unique()//函数通过搜索的数组对象,排序数组,并移除任何重复的节点

4,正则去除空格

var reg = /^\s*|\s*$/g;
var str = "";
str.replace(reg, "")

5,js 二分法

6,统计最多字母数

 

var str = "ADBFDADDADD";
alert( str.split("D").length-1 );

 

 

var str="sssfgtdfssddfsssfssss";
function max(){
var json={};
for(var i=0;i<str.length;i++){
    var k=str[i]; //k是所有字符,字符串也跟数组一样可以通过中括号下标        方法取到每个子元素
if(json[k]){
    json[k]++; //json里有这个字符时,把这个字符的数量+1,
}
else{
    json[k]=1; //否则把这个字符的数量设为1
   }
}
var num=0; var value=null; for(var k in json){ //s、f、g、t、d if(json[k]>num){ num=json[k]; value=k; } } alert("出现最多的字符是:"+value+',出现次数是:'+num); }; max(str);

 

 

 

7,伪数组,伪数组转换

8,jq动画实现,css3动画实现,cavas

9,数据的深复制,

10,实现一个函数clone 可以对javascript中的五种数据类型进行复制。

11,new操作符具体干了什么。

12,正则验证手机号。

** 13, jq对数组等的操作(去重,取重,动画,深入,封装,复制,)

14,原型问的还是比较多。

 

请使用手机"扫一扫"x

posted @ 2017-07-28 19:47  金桔柠檬茶  阅读(96)  评论(0编辑  收藏  举报