zoukankan      html  css  js  c++  java
  • 搜狗2015前端工程师笔试题

    • 1.选项的分析。

    HTTP状态码302表示被请求的资源暂时转移(Moved temporatily),然后会给出一个转移后的URL,而浏览器在处理服务器返回的302错误时,原则上会重新建立一个TCP连接,然后再取重定向后的URL的页面;但是如果页面存在于缓存中,则不重新获取;

    onload事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了,domContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。

    IE6/7/8不支持事件捕获。

    Localstorage是html5存储数据的方式,在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage。HTML5本地存储只能存字符串,任何格式存储的时候都会被自动转为字符串,所以读取的时候,需要自己进行类型的转换。是永久性存储,当然用户可以通过浏览器设置来删除。

    • 2.正则表达式 /^d**[^d]*[w]{6}$/ ,下面的字符串中哪个能正确匹配?

    /^ 表示匹配输入字符串开始的位置;

    d* 表示零次或多次数字;

    * 是转义字符*;

    [^d]*表示 零次或多次非数字;

    [w]{6} 表示所有字符6次;

    $/ 表示匹配输入字符串结尾的位置;

    w 匹配字母或数字或下划线或汉字;

    //解析
    ***abcABCD_89	//匹配
    abc*abcABCDEF	//不匹配,*前必为数字
    123*abcABCD_89	//匹配
    123*ABCabcd-89	//不匹配,后面有连字符
    

    • 3.请问以下程序的输出是?

    示例

    function Foo(){
        var i=0;
        return function(){
            document.write(i++);
        }
    }
    var f1=Foo(),
    f2=Foo();
    f1();
    f1();
    f2();
    

    解析:

    这是一个闭包,闭包可以用在许多地方。

    它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

    这里的局部变量 i,对 f1() 来说是全局变量,对 f2() 来说也是全局变量,但是 f1() 的 i 跟 f2() 的 i 又是相互独立相互不可见的,f1() 每执行一次,f1() 的 i 就加一,f2() 每次执行一次,f2() 的 i 就加油,但是相互之间不影响,因此结果是 010。

    • 4.以下哪一个选项是 HTML5 的 DTD?

    答案:<!DOCTYPE html>

    解析:

    <!DOCTYPE> 声明必须位于 HTML5 文档中的第一行,也就是位于 <html> 标签之前。该标签告知浏览器文档所使用的 HTML 规范。

    DOCTYPE 声明不属于 HTML 标签,它是一条指令,告诉浏览器编写页面所用的标记的版本。在所有 HTML 文档中规定 DOCTYPE 是非常重要的,这样浏览器就能了解预期的文档类型。HTML 4.01 中的 DOCTYPE 需要对 DTD 进行引用,因为 HTML 4.01 基于 SGML。而 HTML 5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 DOCTYPE 来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。

    • 5.依次点击4个li标签,哪一个选项是正确的运行结果?

    现有如下html结构:

    <ul>
        <li>click me</li>
        <li>click me</li>
        <li>click me</li>
        <li>click me</li>
    </ul>
    

    运行如下代码:

    var elements=document.getElementsByTagName('li');
    var length=elements.length;
    for(var i=0;i<length;i++){
        elements[i].onclick=function(){
        alert(i);
    }
    

    答案:依次弹出4,4,4,4。

    解析:

    每个li标签的 onclick 事件执行时,本身 onclick 绑定的 function 的作用域中没有变量 i,i 为 undefined,则解析引擎会寻找父级作用域,发现父级作用域中有 i,且 for 循环绑定事件结束后,i 已经赋值为 4,所以每个 li 标签的 onclick 事件执行时,alert 的都是父作用域中的 i,也就是 4。这是作用域的问题。

    • 6.哪些浏览器无webkit内核?

    解析:

    Wekbit是一个开源的Web浏览器引擎,也就是浏览器的内核。

    Apple的Safari, Google的Chrome, Nokia S60平台的默认浏览器,Apple手机的默认浏览器,Android手机的默认浏览器均采用的Webkit作为器浏览器内核。Webkit的采用程度由 此可见一斑,理所当然的成为了当今主流的三大浏览器内核之一。

    另外两个分别是Gecko和Trident,大名鼎鼎的Firefox便是使用的Gecko 内核,而微软的IE系列则使用的是Trident内核。

    另外,搜狗浏览器是双核的,双核并不是指一个页面由2个内核同时处理,而是所有网页(通常是标准通用标记语言的应用超文本标记语言)由webkit内核处理,只有银行网站用IE内核。

    另外:

    浏览器 的内核引擎,基本上是四分天下:
    1)Trident: IE 以Trident 作为内核引擎;
    2)Gecko: Firefox 是基于 Gecko 开发;
    3)WebKit: Safari, Google Chrome,傲游3,猎豹浏览器,百度浏览器,Opera浏览器;
    4)Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台 - Opera mini;
    注:2013年2月Opera宣布转向WebKit引擎。
    注:2013年4月Opera宣布放弃WEBKIT,跟随GOOGLE的新开发的blink引擎。

  • 相关阅读:
    mirco新建proto流程
    Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息
    Rails核心组件
    Ruby中文乱码问题
    python str转dict
    SQLserver AwaysOn日志文件过大,处理办法
    MySQL的一些小细节
    mysql删除表中重复值
    可恶的自增长标识符
    reset slave all更彻底
  • 原文地址:https://www.cnblogs.com/HuoAA/p/5074262.html
Copyright © 2011-2022 走看看