zoukankan      html  css  js  c++  java
  • (转)前端攻略系列(二)

    (原)http://www.cnblogs.com/Darren_code/archive/2012/01/31/questions.html(注:有修改!)

    前端攻略系列(二) - 前端各种面试题

    2012-01-31 23:12 by 聂微东, 24242 阅读, 70 评论, 收藏, 收藏

      HTML相关

    1.<!DOCTYPE>标签的定义与用法。

        <!DOCTYPE>声明位于文档中的最前面的位置,处于<html>标签之前。此标签可告知浏览器文档使用哪种HTML或XHTML规范。该标签可以声明3种DTD类型,严格办、过度版、框架版。

         <!DOCTYPE>的用法:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

        解析:在上面的声明中,声明了文档的根元素是 html,它在公共标识符被定义为 "-//W3C//DTD XHTML 1.0 Strict//EN" 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。

           -   :   表示组织名称未注册。Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织。

                    +为默认,表示组织名称已注册。

       DTD  :   指定公开文本类,即所引用的对象类型。 默认为DTD。

      HTML :   指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。默认为HTML。

       URL  :  指定所引用对象的位置。

        Strict:排除所有 W3C 专家希望逐步淘汰的代表性属性和元素。

    三种HTML文档类型:

    HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

    a ) 如果需要干净的标记,免于表现层的混乱,用HTML Strict DTD类型:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd">

    b )Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素. 如果用户使用了不支持层叠样式表(CSS)的浏览器以至于你不得不使用 HTML 的呈现特性时,用     Transitional DTD 类型:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd">

    c ) Frameset DTD 被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " http://www.w3.org/TR/html4/frameset.dtd">

    三种 XML 文档类型:

    XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。

    a ) 如果需要干净的标记,免于表现层的混乱,用XHTML Strict DTD类型:

         <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    b )Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素. 如果用户使用了不支持层叠样式表(CSS)的浏览器以至于你不得不使用 HTML 的呈现特性时,用     Transitional DTD 类型:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    c ) Frameset DTD 被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

    选择正确的doctype:

    为了获得正确的doctype声明,关键就是让dtd与文档所遵循的标准对应。

    例如,假定文档遵循的是xhtml 1.0 strict标准,文档的doctype声明就应该引用相应的dtd。

    另一方面,如果doctype声明指定的是xhtml dtd,但文档包含的是旧式风格的html标记,就是不恰当的;类似地,如果doctype声明指定的是html dtd,但文档包含的是

    xhtml 1.0 strict标记,同样是不恰当的。

    如果没有指定有效的doctype声明,大多数浏览器都会使用一个内建的默认dtd。在这种情况下, 浏览器会用内建的dtd来试着显示你所指定的标记(不过这是页面写得太糟糕的时候的做法)。

    看了一下京东、淘宝、还有博客园,用的都是这个(本人也一直都是用的这个):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    但是发现百度跟谷歌用的是“<!doctype html>”,就再仔细查了一下资料,发现HTML5也是直接用的这个,不过是因为 HTML 5 不基于 SGML,因此不需要对 DTD 进行

    引用,但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。

    建议在以后都直接用“<!doctype html>”,用<!doctype html>的话就会开启浏览器的标准兼容模式,在标准兼容模式下,不能保证与其它版本(IE6之前的,直接忽略吧),的 Internet Explorer 保持兼容,文档的渲染行为也许与将来的 Internet Explorer 不同,但也请大家放心地使用吧~~

    2.块级元素和行内元素都有哪些?

     

      CSS相关

    1. 介绍所知道的CSS hack技巧(如:_, *, +, 9, !important 之类)。
    2. 介绍CSS盒模型。
    3. CSS层叠是什么?介绍一下。
    4. 都知道哪些CSS浏览器兼容性问题。
    5. 有时会被问到些刁钻点的题,比如position值都有哪些,CSS3都有哪些新内容...
     

      JavaScript基础相关

    1. HTTP协议的状态消息都有哪些?(如200、302对应的描述)
    2. AJAX是什么? AJAX的交互模型(流程)? AJAX跨域的解决办法?
    3. 同步和异步的区别? 
    4. 简述JavaScript封装。
    5. JavaScript继承有哪两种形式形式,进行描述。
    6. 什么是闭包?以下代码点击<p>会输出什么?为什么?能大概说明白的话继续问能想出几种解决办法。
      复制代码
      <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title>闭包演示</title> <style type="text/css">     p {background:gold;} </style> <script type="text/javascript">  function init() {         var pAry = document.getElementsByTagName("p");         for( var i=0; i<pAry.length; i++ ) {              pAry[i].onclick = function() {              alert(i);         }    } } </script>  </head>  <body onload="init();">  <p>产品 0</p>  <p>产品 1</p>  <p>产品 2</p>  <p>产品 3</p>  <p>产品 4</p>  </body>  </html> 
      复制代码
    7. 在JS中this关键字的使用场合和用法(如在构造函数中、setTimeout中等)。
    8. 简述下cookie的操作,还有cookie的属性都知道哪些。
    9. IE与FF的JS兼容性都知道哪些。
    10. DOM操作 - 怎样添加、移除、移动、复制、创建和查找节点(这个问题真心是基础题,一般不会问)。
     

      jQuery相关

    1. jQuery源码是否尝试去读过?说说基本的架构或者 jQuery.fn.init 中都做了哪些判断。
    2. 都知道哪些不好的jQuery书写方式。
    3. Sizzle是否有读过?
     

      其它相关的加分项:

    1. 都使用和了解过哪些编辑器?都使用和了解过哪些日常工具?
    2. 都知道有哪些浏览器内核?开发过的项目都兼容哪些浏览器?
    3. 国内外的JS牛人都知道哪些?
    4. 瀑布流布局或者流式布局是否有了解
    5. 正则表达式有系统学习过吗(看书或网上教程)?有的话就问问简单点的邮箱验证、URL验证, 或者问问 贪婪匹配与懒惰匹配 的理论知识。
    6. Node.js是否有过尝试?到什么程度?说说个人理解的看法?
    7. HTML5都有哪些新的JS API?
    8. 前端优化知识都知道哪些?
    9. 基础算法题(如快速排序,能否一两句说说重要的核心原理或者数组消重等)。
    10. 是否有接触过或者了解过重构。

     

     

    作者:聂微东 出处:http://www.cnblogs.com/Darren_code/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    webpack配置Jquery全局包及全局包插件
    webpack安装及使用
    Anywhere 随启随用的静态文件服务器
    sourcetree基本使用
    左边固定右边自适应的布局
    如何顺畅使用sourcetree可视化工具
    gulp前端自动化构建工具
    原生DOM操作方法小结
    java Scanner
    java 面向对象 封装
  • 原文地址:https://www.cnblogs.com/allearner/p/3821333.html
Copyright © 2011-2022 走看看