Web前端初级面试题总结

Web篇:

1.常见的浏览器内核有哪些?

IE:Trident内核             FireFox:gecko内核                Opera :原是用Presto,现改用Blink

Safari :webkit内核       Chrome:Blink(WebKit的分支)

2.前端页面有哪三层构成,分别是什么?作用是什么?

结构层 Html     表示层 CSS     行为层 js

3.请描述一下 cookies,sessionStorage 和 localStorage 的区别?

    sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据。有了本地数据,就可以避免数据在浏览器和服务器间不必要地来回传递。

    sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个”浏览器窗口”的概念。sessionStorage是在同源的同窗口(或tab)中,始终存在的数据。也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一页面,数据仍然存在。关闭窗口后,sessionStorage即被销毁。同时”独立”打开的不同窗口,即使是同一页面,sessionStorage对象也是不同的

     cookies会发送到服务器端。其余两个不会。

4.ajax的缺点

ajax不支持浏览器back按钮。

安全问题 AJAX暴露了与服务器交互的细节。

对搜索引擎的支持比较弱。

破坏了程序的异常机制。不容易调试。

5.怎样添加、移除、移动、复制、创建和查找节点。

1)创建新节点

      createDocumentFragment()    //创建一个DOM片段

      createElement()   //创建一个具体的元素

      createTextNode()   //创建一个文本节点2)添加、移除、替换、插入
      appendChild()

      removeChild()

      replaceChild()

      insertBefore() //并没有insertAfter()3)查找
      getElementsByTagName()    //通过标签名称

      getElementsByName()    //通过元素的Name属性的值(IE容错能力较强,
      会得到一个数组,其中包括id等于name值的)

      getElementById()    //通过元素Id,唯一性

 

HTML5篇:

1.html5有哪些新特性、移除了那些元素?

新增的元素有绘画 canvas ,用于媒介回放的 video 和 audio 元素,本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失,而sessionStorage的数据在浏览器关闭后自动删除,此外,还新增了以下的几大类元素。

    内容元素,article、footer、header、nav、section。

    表单控件,calendar、date、time、email、url、search。

    控件元素,webworker, websockt, Geolocation。

    移出的元素有下列这些:

    显现层元素:basefont,big,center,font, s,strike,tt,u。

    性能较差元素:frame,frameset,noframes。

2.如何处理HTML5新标签的浏览器兼容问题?

 处理兼容问题有两种方式:

    (1)    IE8/IE7/IE6支持通过document.createElement方法产生的标签,利用这一特性让这些浏览器支持HTML5新标签。

    (2)    最好的方式是直接使用成熟的框架、使用最多的是html5shim框架

3.如何区分 HTML 和HTML5?

DOCTYPE声明的方式是区分HTML和HTML5标志的一个重要因素,此外,还可以根据新增的结构、功能元素来加以区分。

4.行内元素有哪些?块级元素有哪些?空(void)元素有哪些?

    行内元素有:a b span img input select strong

    块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

    知名的空元素:

    


    鲜为人知的是:

    

5.什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?

<style type="text/css" media="all">@import "../fouc.css";style>

而引用CSS文件的@import就是造成这个问题的罪魁祸首。

IE会先加载整个HTML文档的DOM,然后再去导入外部的CSS文件,

因此,在页面DOM加载完成到CSS导入完成中间会有一段时间页面上的内容是没有样式的,这段时间的长短跟网速,电脑速度都有关系。

解决方法简单的出奇,只要在<head>之间加入一个<link>或者<script>元素就可以了。

 

CSS3篇:

 

1.CSS清除浮动的几种方法(至少两种)

使用带clear属性的空元素;        使用CSS的overflow属性;

使用CSS的:after伪元素;         使用邻接元素处理;

2.页面导入样式时,使用link和@import有什么区别?

link属于HTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;

页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

 

JavaScript篇:

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

string、number、boolean、Object、underfind、function ;

2.js的数据类型都有哪些?

 字符串、数字、布尔、数组、对象、Null、Undefined、Symbol

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

强制类型转换:parseInt,parseFloat,number

隐世类型转换:==和===

 

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

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

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

 

5.谈谈This对象的理解。

this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。

但是有一个总原则,那就是this指的是调用函数的那个对象。

this一般情况下:是全局对象Global。 作为方法调用,那么this就是指这个对象

 

Webpack篇:

1.Webpack是什么?

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源

2.loader的作用: 

实现对不同格式的文件的处理,比如说将scss转换为css,或者typescript转化为js

 

转换这些文件,从而使其能够被添加到依赖图中

3.优化插件:

OccurenceOrderPlugin: 为组件分配ID,通过这个插件webpack可以分析和优先考虑使用最多 的模块,然后为他们分配最小的ID
UglifyJsPlugin: 压缩代码

 

你可能感兴趣的:(Web前端初级面试题总结)