面试系列二

原创
2015/08/12 16:29
阅读数 152

1.执行结果

       var t=true;
    	setTimeout(function(){
           console.log(123);
            t=false;
        },10);
		while(t)
		{ }
		console.log('end');
会出现死循环,因为在初始化过程中,先初始化t=true这时候while一直在循环这个空的函数主体;这里面涉及到了一个执行顺序的问题,最近也在看单页web开发的书,上面讲到函数的执行顺序,首先初始化参数值,之后初始化变量,但不会给局部变量赋值,第三再执行函数,这个时候局部变量才会有值。所以如果代码变成这样:


var t=true;
    	setTimeout(function(){
           console.log(123);
            t=false;
        },10);
		{ }
		console.log('end');

输出的结果为end 123

2.按顺序写出alert弹出窗口的内容。

var name = "The Window";
		var object = {
		      name : "My Object",
		      getNameFunc : function(){
		          alert('1.' + this.name);
		          return function(){
		              return this.name;
		          };
		      }
		};
		var func = object.getNameFunc();		//1.My Object function
		alert('2.' + func());					//2.The window
		alert('3.' + func.call(object));		//3.My Object
		alert('4.' + func.apply(object));		//4.My Object

主要考擦的应该是闭包吧,认真读一下应该不难,但是如果该代码封装到jQuery中用$(function(){})包裹一下的话,最外层的name会被认为是局部变量,第二个弹窗自然就是2.  ,这里面主要考验了this的指向,除了第二个指向的是window其他都是object;

3.算 出结果

console.log(4+"3")
		console.log(3+"a")
		var a='4' ;a = a+3;
		console.log(a)
		console.log(3+null);
		console.log(3+true);
		console.log(3+"a"-3);
		console.log(undefined==null);
		console.log(undefined===null);
		console.log(1==true);
		console.log(1===true);

43 | 3a | 43 | 3 | 4 | NaN | true | false | true | false

4.怎样用jQuery编码和解码URL

encodeURIComponent(url)    //可把字符串作为URI 组件进行编码

decodeURIComponent(url)    //可把字符串作为URI 组件进行解码

5.如何用jQuery禁用浏览器的前进后退按钮

<script type="text/javascript" language="javascript">
 
$(document).ready(function() {
 
     window.history.forward(1);
     //OR
     window.history.forward(-1);
 
});
 
</script>






展开阅读全文
加载中

作者的其它热门文章

打赏
0
5 收藏
分享
打赏
0 评论
5 收藏
0
分享
返回顶部
顶部