首页 > 技术文章 > 前端面试题---Javascript

zqm1 2017-02-22 20:22 原文

一、Javascript

  

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

      

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

     

     3.split() join() 的区别
        答:前者是切割成数组的形式,后者是将数组转换成字符串

 

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

  

    5、事件绑定和普通事件有什么区别

        答:事件绑定就是针对dom元素的事件,绑定在dom元素上

        普通事件即为非针对dom元素的事件

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

7.ajax请求的时候get 和post方式的区别
答:一个在url后面 一个放在虚拟载体里面

           1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来


           2.使用Get请求发送数据量小,Post请求发送数据量大

 

   8.call和apply的区别

      答: call方法: 
        语法:call(thisObj,Object)
        定义:调用一个对象的一个方法,以另一个对象替换当前对象。
        说明:
        call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 
            如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 

      apply方法: 
       语法:apply(thisObj,[argArray])
       定义:应用某一对象的一个方法,用另一个对象替换当前对象。 
       说明: 
        如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 
        如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

 

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

 

   10.事件委托是什么
      答:让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!

 

   11.闭包是什么,有什么特性,对页面有什么影响

      答:“官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

             通俗的讲:就是函数a的内部函数b,被函数a外部的一个变量引用的时候,就创建了一个闭包。

           闭包的特性:

           ①.封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;
           ②.持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然保存在

           缺点:
               使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等.

 

   12.如何阻止事件冒泡和默认事件
        答:canceBubble return false

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

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

 

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

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

     17.”==”和“===”的不同
         答:前者会自动转换类型
              后者不会

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


 

推荐阅读