javascript 面试题

1、HTTP协议的状态消息都有哪些?(第一题就这样)

http://www.cnblogs.com/TankXiao/archive/2013/01/08/2818542.html(看这里吧,这个问的太)

2、AJAX是什么? AJAX的交互模型(流程)? AJAX跨域的解决办法?

AJAX是一种异步请求交互技术。( 语文不好,我觉得这样应该差不多了)

AJAX的交互模型 客户端请求-提交服务器-处理信息-返回客户端-刷新区域

跨域还没有接触过……

3、同步和异步的区别?

大体上讲就是B/S模式和AJAX的区别吧。囵吞(错字?)网页刷新区域和时间的区别吧。

4、JavaScript封装(能不能不问这种理论问题,非常的不会答。)

简单点说吧,就是让一段代码可以重复的调用,并且通过所传值返回不同的值!

5、JavaScript继承有哪两种形式形式(擦,这么大一个问题)

对象冒充和圆形方式

对象冒充:有函数A 函数B  函数B中调用函数A

例:

    1. function A(name){ 
    2. this.name = name; 
    3. this.sayHello = function(){alert(this.name+” say Hello!”);}; 
    4. function B(name,id){ 
    5. this.temp = A
    6. this.temp(name);        //相当于new A(); 
    7.     delete this.temp;        //防止在以后通过temp引用覆盖超类A的属性和方法 
    8.      this.id = id; 
    9. this.checkId = function(ID){alert(this.id==ID)}; 
    10. }

圆形方式:

例:有函数A 函数B 函数B通过prototype或某种方式来复制A的属性或方法

    1. functionA(){ 
    2.   this.name = “Mike”; 
    3.   this.sayGoodbye = function(){alert(“GoodBye!”);}; 
    4. A.prototype.sayHello = function(){alert(”Hello!”);}; 
    5. function B(){} 
    6. B.prototype = new Person();

 

6.javascript 闭包

读取其他函数内部变量的函数(关键是变量的继承,理解全局变量和局部变量)

7、以下代码点击<p> 会输出什么?为什么?能大概说明白的话继续问能想出几种

    1. <!DOCTYPE HTML> 
    2. <html> 
    3. <head> 
    4. <meta charset="utf-8" /> 
    5. <title>闭包演示</title> 
    6. <style type="text/css"> 
    7.     p {background:gold;}  
    8. </style> 
    9. <script type="text/javascript">   
    10. function init() {      
    11.     var pAry = document.getElementsByTagName("p");      
    12.     for( var i=0; i<pAry.length; i++ ) {      
    13.          pAry[i].onclick = function() {      
    14.          alert(i);      
    15.     }   
    16.   }  
    17. }  
    18. </script>   
    19. </head>   
    20. <body onload="init();">   
    21. <p>产品 0</p>   
    22. <p>产品 1</p>   
    23. <p>产品 2</p>   
    24. <p>产品 3</p>   
    25. <p>产品 4</p>   
    26. </body>   
    27. </html> 

   全部都弹出5,因为弹出i时,i已经被保存在内存中,他的值是for结束是最后的值所以是5。问题是闭包产生的,解决方法就是解决闭包,用(function(){})()可以消除闭包

具体可以这样写

    1. function init() {      
    2.     var pAry = document.getElementsByTagName("p");      
    3.     for( var i=0; i<pAry.length; i++ ) {
    4.    (function(i) {pAry[i].onclick = function() { alert(i);}}(i))
    5.   }  

 

8、在JS中this关键字的使用场合和用法(如在构造函数中、setTimeout中等)

  this一般使用在构造函数中, 用来引用对象。

9、DOM操作 - 怎样添加、移除、移动、复制、创建和查找节点(这个问题真心是基础题,一般不会问)。

添加:appendChild()  移除:removeChild() 复制:replaceChild()  创建 createDocumentFragment()  查找:getElementsByTagName().

10、简述下cookie的操作,还有cookie的属性都知道哪些!

创建-保存-读取-判断-显示(差不多了吧)

cookie属性:常用的名称,值,过期时间。

11.IE与FF的JS兼容性都知道哪些。

变量名与ID重复,event的x和y属性,对BODY的解析时间以及input的属性修改状态等等。

 

 

原文地址:https://www.cnblogs.com/woshiyigexu/p/3160403.html