• 2015淘宝校招天猫前端面试题


    1、JavaScript、CSS的浏览器兼容问题

    答:JavaScript 事件监听:JS引擎对用户鼠标、键盘、窗口事件等动作的监视进行的操作,也就是针对用户相应的操作进行附加事件。

    IE浏览器使用ele.attachEvent("onclick", doSomething2); FF,Opera浏览器使用ele.addEventListener('click',doSomething2,true),true表示采用事件捕获。
     

    2、CSS选择器,怎么设计比较有效率? 例如:id选择器+class选择器 与 class选择器 + id选择器,哪种更有效率?

    答:后者,解析从右往左进行

    3、事件冒泡和事件捕获机制,哪种先进行?  

    答:事件冒泡:从事件目标,附件相应事件,直到到达最顶层DOM元素。事件捕获:从最顶层元素开始,附件相应事件,直到到达事件目标。W3C模型中,任何事件发生,先从顶层开始进行事件捕获,直到事件触发了事件源元素,再从事件源元素往上进行事件冒泡,直到到达document。

    4、盒模型    

    答:内容区(content)+ 填充(padding)+ 边框(border)+ 边距(margin)

    5、 width指哪部分,能否改变成 内容区+内边距+边框?

    答:width指的是内容区content 

    6、跨域实现方式

    7、JavaScript继承

    答:继承模式分为:基于原型链的继承、借用构造函数继承、组合继承。

    • 基于原型链的继承:

    定义:利用原型让一个引用类型继承另一个引用类型的属性和方法。先说明构造函数、原型、实例三者之间的关系:每个构造函数都有一个原型对象,每个原型对象都包含一个指向构造函数的指针,每个实例都拥有一个指向原型对象的内部指针。假如让原型成为另一个原型的实例,那么该原型对象包含一个指向另一个原型的指针,而另一个原型包含指向另一个构造函数。假若另一个原型又是另一个类型的实例,上述关系依然成立,如此层层递进,就构成了实例与原型的链条。

    缺点:a)对于包含引用值的原型A,引用值属性对于原型A的实例是一个实例属性。但原型B继承该原型A,原型B成为原型A的一个实例,拥有了引用值属性。该引用值属性对于原型B的实例来说,是一个原型属性;b) 创建子类型的实例时,没办法在不影响所有对象实例的情况下,给超类型的构造函数传递参数。

    • 借用构造函数继承:

    定义:在子类型构造函数的内部调用父类型的构造函数,通过使用apply()或call()方法,在新创建的对象上执行构造函数

    优点:解决了基于原型链继承方法的弊端 

    缺点:方法都在构造函数中定义,因此函数复用无从谈起

    •  组合继承:结合上两种方法,发挥二者之长的一种组合模式,使用原型链实现对原型属性和方法的继承,使用构造函数实现对实例属性的继承。 

    8、apply实现继承与call的联系与区别

    联系:

    网上查到关于apply和call的定义:这两个方法都能劫持另外一个对象的方法,继承另外一个对象的属性.

    xxxFunction.apply(obj,args) 方法接收两个参数
    obj
    :这个对象将代替xxxFunction类里this对象,也即xxxFunction类(函数)里的this不在是指 xxxFunction 本身,而是obj;
    args:这个是数组类型的参数,它将作为参数传给Function(args --> arguments)
    结果是还是执行 xxxFunction 类方法(函数)的功能,只不过该 xxxFunction 函数以另一个目标对象和一个数组作为参数传递进 xxxFunction 函数,xxxFunction函数里面的 this 是传进的目标对象,二不是 xxxFunction 本身;

    call:和apply类似的,只不过是参数列表不一样.

    xxxFunction.call(obj,[param1[,param2[,...[,paramN]]]])
    obj
    :这个对象将代替xxxFunction类里this对象,(跟apply中的obj一样);
    params:这个是一个参数列表(即逗号隔开的零个或多个参数),不是数组;
    结果是还是执行 xxxFunction 类方法(函数)的功能,只不过该 xxxFunction 函数以另一个目标对象和一个参数列表[即用逗号隔开的零或多个参数]作为参数传递进 xxxFunction 函数,xxxFunction函数里面的 this 是传进的目标对象,二不是 xxxFunction 本身;

    区别:用法上不同,主要是参数不完全同

    9、JavaScript基本数据类型

    答:Integer、String、Boolean、Null、Undefined、Object

    10、!DOCTYPE的作用

    答:HTML有多种版本,告知浏览器文档确切使用哪种HTML or XHTML版本,三种DTD,transitional、strict、frameset以及html 5 不使用DTD

    11、语义化标签

    答:

    <Hx> (<h1>, <h2>, <h3>, <h4>, <h5>, <h6>):标题

    <p>:段落

    <ul><ol><li>:无序列表、有序列表、列表项 

    <dl><dt><dd>:定义列表、定义标题、定义描述

    <q><blockquote><cite>:单行引用、长篇引用、引用地址

    <em><strong>:强调、重点强调

    <table><caption><thead><tbody><th><tr><td><tfoot>: 表格、首部说明、表格头部、表格主体内容、表格标题、表格行、表格列、表格尾部

    <dfn>:对特殊的术语或短语定义

    <ins><del>:插入部分(给文本加上下划线)、删除部分(删除线贯穿于文本) 

    <abbr><acronym>:web页面上的简称、取首字母缩写

    alt属性为不能显示图像、窗体或applets的用户代理(UA),指定替换文字。替换文字的语言由lang属性指定。

    title属性用来为元素提供额外说明信息title属性可以用在除了base,basefont,head,html,meta,param,scripttitle之外的所有标签。但是并不是必须的。

    12、清除浮动的方式

     答:有三种方式清楚浮动:

    使用空标签清除浮动,该标签的css属性为clear:both;

    使用overflow属性,需要清楚浮动的元素上赋予css属性overflow:auto;

    使用after伪对象清楚浮动,#layout:after{display:block;clear:both;content:”";visibility:hidden;height:0;}
     

    13、为多个按钮绑定click事件,同时触发 

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <meta charset="utf-8"></meta>
    </head>
    <body>
        <p></p>
        <button id="btn_A">A</button>
        <button id="btn_B">B</button>
        <button id="btn_C">C</button>

        <script type="text/javascript" src="buttonsClick.js"></script>
    </body>
    </html>
    View Code
    var b = document.body;
    var count = 0;

    function doClick (event) {
        if(event.target.tagName == "BUTTON") {
            ++count;
            document.getElementsByTagName("p")[0].innerHTML = "按钮点击" + count + "次";
        }
    }
    b.onclick = doClick;
    View Code
  • 相关阅读:
    05 库的简单操作
    04 基本的MySQL语句
    03 MySQL安装和基本管理
    02 数据库概述
    01 MySQL入门了解
    Django-组件拾遗
    bootstrap基础讲解
    jQuery练习
    前端基础之Jquery
    15 Django组件-中间件
  • 原文地址:https://www.cnblogs.com/sun-mile-rain/p/3949840.html
Copyright © 2020-2023  润新知