前端面试题一(Javascript)

1、在web开发中,我们经常会用到cookie,那么如何设置cookie?对于性能的影响又是怎样的?

//存储cookie

function getCookie(c_name) {

if(document.cookie.length > 0) {

c_start = document.cookie.indexOf(c_name + "=")

if(c_start != -1) {

c_start = c_start + c_name.length + 1

c_end = document.cookie.indexOf(";", c_start)

if(c_end == -1) c_end = document.cookie.length

return unescape(document.cookie.substring(c_start, c_end))

}

}

return ""

}

//设置cookie

function setCookie(c_name, value, expiresdays) {

var exdate = new Date();

exdate.setDate(exdate.getDate() + expiresdays);

document.cookie = c_name + "=" + escape(value) +

((expiresdays == null) ? "" : ";expires=" + exdate.toGMTString())

}

//检查cookie

function checkCookie() {

username = getCookie('username');

if (username!=null && username!="") {

alert("Welcome again" + username + '!');

} else {

username = prompt('Please enter your name:', "")

if(username!=null && username != "") {

setCookie('username', username, 365);

}

}

}

//清楚cookie

function clearCookie(c_name){

setCookie(c_name,"",-1);

}

</script>

</head>

 

<body onLoad="checkCookie()">

</body>

因为cookie会在浏览器和服务器之间进行传递,如果很大的话,会影响页面响应的时间。为了较少响应时间,要清除不必要的cookie,并且给cookie设置合适的域

 

2、在进行大量字符串拼接操作的时候,采用哪种方法比较高效?

第一用连接符“+”把要连接的字符串连起来如果只连接100个以下的字符串建议用这种方法最方便

二以数组作为中介用 join 连接字符串加号消耗更少的资源,速度也更快

第三利用对象属性来连接字符串

 

3、’5’+3,[1,2]+[3,4],[1,2]+{a:1,b:2} 答案:’53’|1,23,4 | 1,2[Object,Object]

 

4、apply与call是做什么用的,有什么区别?

劫持另外一个对象的方法,继承另外一个对象的属性.

不过apply的参数列表是数组,call的参数列表是对象

 

5、proxy 方法接受一个已有的函数,并返回一个带特定上下文的新的函数。On方法动态内容绑定事件函数,与delegate功能相同

Ajax中如何指定callback函数名,如果jsonp的话

$.ajax({

   type:"get",

   async:false,

   url:"/home/ReturnJson",

dataType:"jsonp",

jsonp:"callback",

jsonpCallback:"receive",

success:function(data){

    alert(data.name);

     }

 eeror:function(){

    alert("fail");

     }

     });

posted @ 2017-06-18 15:40  reus531  阅读(115)  评论(0编辑  收藏  举报