美文网首页前端面试
前端面试大全(五)

前端面试大全(五)

作者: 博为峰51Code教研组 | 来源:发表于2017-05-23 13:20 被阅读0次

    1.javascript的typeof返回哪些数据类型

    string Object/null number function boolean underfind

    2.例举3种强制类型转换和2种隐式类型转换?

    强制(parseInt,parseFloat,number)

    隐式(==  ===  + * / %  ++ --)

    3.split() join() 的区别

    前者是切割成数组的形式,后者是将数组转换成字符串

    4.数组方法pop() push() unshift() shift()

    Push()尾部添加 pop()尾部删除

    Unshift()头部添加 shift()头部删除

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

    区别就是普通事件只支持单个事件,而事件绑定可以添加多个事件,就这么简单。

    6.IE和DOM事件流的区别

    1.执行顺序不一样、

    2.参数不一样

    3.事件加不加on

    4.this指向问题

    7.IE和标准下有哪些兼容性的写法

    Var ev = ev || window.event //获取event对象

    document.documentElement.clientWidth || document.body.clientWidth//浏览器窗口的大小

    Var target = ev.srcElement||ev.target //获取事件源

    8.ajax请求的时候get 和post方式的区别

    一个在url后面 一个放在虚拟载体里面

    有大小限制

    安全问题

    应用不同 一个是论坛等只需要请求的,一个是类似修改密码的

    9.call和apply的区别

    Object.call(this,obj1,obj2,obj3)

    Object.apply(this,arguments)

    10.ajax请求时,如何解析json数据

    使用eval parse 鉴于安全性考虑 使用parse更靠谱

    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.事件委托是什么

    让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!

    (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。

    IE 5.5: div -> body -> document

    IE 6.0: div -> body -> html -> document

    Mozilla 1.0: div -> body -> html -> document -> window

    (2)捕获型事件(event capturing):

    事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,

    不过必须由开发人员特别指定)。

    (3)DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,

    但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,

    从document对象开始,也在document对象结束。

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

    闭包就是能够读取其函数内部变量的函数。

    官方解释是一个拥有许多变量和绑定了这些变量的环境的表达式

    闭包的实质是一个函数,是一个用于返回局部变量值的函数,

    因为在全局中,受JavaScript链式作用域结构的影响,父级变量中无法访问到子级的变量值,

    为了解决这个问题,才使用闭包这个概念。由于闭包时,变量的值都保存到内存中,

    会导致页面加载时内存消耗很大,IE会导致内在泄露,因此尽量少用或用时要及时删除变量。

    15.如何阻止事件冒泡和默认事件

    function stopBubble(e) {

    // 如果提供了事件对象,则这是一个非IE浏览器

    if ( e && e.stopPropagation ) {

    // 因此它支持W3C的stopPropagation()方法

    e.stopPropagation();

    } else {

    // 否则,我们需要使用IE的方式来取消事件冒泡

    window.event.cancelBubble = true;

    }

    }

    16.添加 删除 替换 插入到某个接点的方法

    obj.appendChidl()

    obj.innersetBefore

    obj.replaceChild

    obj.removeChild

    相关文章

      网友评论

        本文标题:前端面试大全(五)

        本文链接:https://www.haomeiwen.com/subject/dunwxxtx.html