1.javascript的typeof返回哪些数据类型
    Object、number、 function、 boolean、 underfind

2.例举3种强制类型转换和2种隐式类型转换?
    强制(parseInt,parseFloat,number)
    隐式(== – ===)

3.split() join() 的区别
    split()方法:用于把一个字符串分割成字符串数组.
    join() 方法用于把数组中的所有元素放入一个字符串。
   (总结:前者是切割成数组的形式,后者是将数组转换成字符串);

4.数组方法pop() push() unshift() shift()
    Push()尾部添加; pop()尾部删除;
    Unshift()头部添加; shift()头部删除;

5.事件绑定和普通事件有什么区别?
   事件绑定就是针对dom元素的事件,绑定在dom元素上
   普通事件即为非针对dom元素的事件;
  例如:
  普通事件
    var btn = document.getElementById("hello");
    btn.onclick = function(){
         alert(1);
    };
    btn.onclick = function(){
         alert(2);
    }; //这个事件只会弹出2;

  事件绑定
   var btn = document.getElementById("hello");
   btn.addEventListener("click",function(){
       alert(1);
   },false);
   btn.addEventListener("click",function(){
       alert(2);
   },false); //这个事件首先会弹出1,然后在弹出2;


6.IE和DOM事件流的区别?
   1.执行顺序不一样;
   2.参数不一样;
   3.事件加不加on;
   4.this指向问题;

7.IE和标准下有哪些兼容性的写法
   var ev = ev || window.event
   document.documentElement.clientWidth || document.body.clientWidth
   var target = ev.srcElement||ev.target

8.ajax请求的时候get 和post方式的区别?
   1、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;
        post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程;
   2、Get请求有如下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个问号?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名         称=值”的形式出现,参数与参数之间利用一个连接符&来区分。

        Post请求有如下特性:数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
   3、get传送的数据量较小,不能大于2KB;
        post传送的数据量较大,一般被默认为不受限制。但理论上,因服务器的不同而异.
   4、get安全性非常低,post安全性较高;
  (总结:
       一个在url后面 一个放在虚拟载体里面
      有大小限制
      安全问题
      应用不同 一个是论坛等只需要请求的,一个是类似修改密码的)

9.call和apply的区别?
     相同点:两个方法产生的作用是完全一样的
     不同点:方法传递的参数不同
     Object.call(this,obj1,obj2,obj3)调用一个对象的一个方法,以另一个对象替换当前对象
     Object.apply(this,arguments)应用某一对象的一个方法,用另一个对象替换当前对象。

10.ajax请求时,如何解释json数据?
    使用eval parse 鉴于安全性考虑 使用parse更靠谱

11.b继承a的方法?
    b.prototype=new a;

12.写一个获取非行间样式的函数
    

function getStyle(obj,attr,value){

if(!value){

if(obj.currentStyle){

return obj.currentStyle(attr)

}else{

obj.getComputedStyle(attr,false)

}

}else{

obj.style[attr]=value
}
}

13.事件委托是什么?
     让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
     事件委托就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素(document);
     jQuery为绑定和委托事件提供了.bind()、.live()和.delegate()方法;
     http://www.tuicool.com/articles/zQVvau 例子可见此链接

14.闭包是什么,有什么特性,对页面有什么影响?
     闭包就是能够读取其他函数内部变量的函数。
     http://blog.csdn.net/gaoshanwudi/article/details/7355794 此链接可查看(问这个问题的不是一个公司)

15.如何阻止事件冒泡和默认事件?
     canceBubble return false
     查看 http://www.2cto.com/kf/201412/359961.html 案例

16.添加 删除 替换 插入到某个接点的方法?
     obj.appendChidl()
     obj.innersetBefore
     obj.replaceChild
     obj.removeChild

17.解释jsonp的原理,以及为什么不是真正的ajax?
    动态创建script标签,回调函数
    Ajax是页面无刷新请求数据操作

18.javascript的本地对象,内置对象和宿主对象?
   本地对象为array obj regexp等可以new实例化
   内置对象为gload Math 等不可以实例化的
   宿主为浏览器自带的document,window 等

19.document load 和document ready的区别?
   Document.onload 是在结构和样式加载完才执行js
   Document.ready原生种没有这个方法,jquery中有 $().ready(function)

20.”==”和“===”的不同?
   前者会自动转换类型
   后者不会

21.javascript的同源策略?
   一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合

22.编写一个数组去重的方法。
function oSort(arr)
{
var result ={};
var newArr=[];
for(var i=0;i<arr.length;i++)
{
if(!result[arr])
{
newArr.push(arr)
result[arr]=1
}
}
return newArr
}