搜狐 2021 前端工程师面试题

小编:管理员 2498阅读 2021.10.10

第1题:

一、单选题

1、下列描述错误的是()

A、HTTP状态码302表示暂时性转移

B、domContentLoaded事件早于onload事件

C、IE6/7/8不支持事件捕获

D、localStorage存储的数据,在刷新页面后会消失



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



第2题:

 2、以下Js程序的输出是什么()

A、true,true,true

B、true,true,false

C、false,false,true

D、false,false,false



 2、B

变量abc都是字符串型的变量,而不是真正的undefined和false,在判断里都会被认为是真值,显示true,只有空串为false



第3题:

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

A、***abcABCD_89

B、abc*abcABCDEF

C、123*abcABCD_89

D、123*ABCabcd-89



 3、C。

解释:\d*表示以数字开头,排除AB选项,\*   匹配一个星号,[^\d]*匹配任意非数字字符,[\w]{6}匹配包括下划线在内的数字及字母字符6个,D选项有连接符-,排除掉。



第4题:

 4、

function Foo(){

     var i=0;

     return function(){

         document.write(i++);

     }

}

var f1=Foo(),

f2=Foo();

f1();

f1();

f2();

请问以上程序的输出是()        

A、010

B、012

C、000

D、011



 4、A
这是一个闭包,闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。 
这里的局部变量i,对f1()来说是全局变量,对f2()来说也是全局变量,但是f1()的i跟f2()的i又是相互独立相互不可见的,f1()每执行一次,f1()的i就加一,f2()每次执行一次,f2()的i就加油,但是相互之间不影响,因此结果是010



第5题:

 5、以下哪个选项不是块级元素()        

A、div

B、span

C、p

D、h1



 5、B

大多数 HTML   元素被定义为块级元素或内联元素。“块级元素”译为 block level element,“内联元素”译为   inline element。

1.块级元素在浏览器显示时,通常会以新行来开始(和结束)。块级元素按照其应用于结构还是内容分为三种:结构化块状元素,终端块状元素,多目标块状元素。

结构化块状元素:这类元素用于构造文档的结构,没有语义上的含义,仅仅划分出了文档的组织方式,并没有体现文档的内容。 

终端块状元素:这类元素用于从结构转向内容,拥有语义上的含义,能够表明内容的性质。终端块状元素属于结构的终点,它们不能再包含其他块级元素,只能包含文本或行级元素。

多目标块状元素:多目标指的是可以自由的扩展或嵌套文档的结构,以可以终端的形式出现。当多目标块状元素以结构化的方式使用时就含有结构化的内涵,以终端的形式使用就含有语义的内涵。 

2.内联元素(inline element)   一般都是基于语义级(semantic)的基本元素,只能容纳文本或者其它内联元素。 

A属于   多目标块状元素

C和D属于   终端块状元素

B:span    常用内联容器,定义文本内区块    



第6题:

 6、以下哪一个选项是html5的dtd?

A、

B、

C、

D、



 6、A

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

doctype 声明不属于 HTML 标签;tag; 它是一条指令,告诉浏览器编写页面所用的标记的版本。

在所有 HTML 文档中规定 doctype 是非常重要的,这样浏览器就能了解预期的文档类型。

HTML 4.01 中的 doctype 需要对 DTD 进行引用,因为 HTML 4.01 基于 SGML。而 HTML 5 不基于   SGML,因此不需要对 DTD 进行引用,但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。



第7题:

 7、现有如下html结构

     

  • click me
  •  

  • click me
  •  

  • click me
  •  

  • click me

运行如下代码:

    var elements=document.getElementsByTagName('li');

    var length=elements.length;

    for(var i=0;i

        elements[i].onclick=function(){

        alert(i);

    }

 }

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

A、依次弹出1,2,3,4

B、依次弹出0,1,2,3

C、依次弹出3,3,3,3

D、依次弹出4,4,4,4



 6、D 

页面加载后会自动把脚本部分执行,执行完脚本,i=4. 当点击click me时 触发onclick事件 此时的i早已是4



第8题:

 8、下面列出的浏览器,无webkit内核的是()

A、chrome

B、Safari

C、搜狗浏览器

D、firefox



 8、D

Wekbit是一个开源的Web浏览器引擎,也就是浏览器的内核。Apple的Safari, Google的Chrome, Nokia  S60平台的默认浏览器,Apple手机的默认浏览器,Android手机的默认浏览器均采用的Webkit作为器浏览器内核。Webkit的采用程度由  此可见一斑,理所当然的成为了当今主流的三大浏览器内核之一。另外两个分别是Gecko和Trident,大名鼎鼎的Firefox便是使用的Gecko   内核,而微软的IE系列则使用的是Trident内核。

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


关联标签: