Doctype做用?标准模式和兼容模式有什么区别?javascript
html5为何只须要写?css
行内元素有哪些?块级元素有哪些?空元素有哪些?html
页面导入样式时,使用link和@import有什么区别?前端
介绍一下你对浏览器内核的理解?html5
主要分为渲染引擎和js引擎。java
渲染引擎:负责取得网页的内容,引入css,计算网页的显示方式,输出到显示器。node
js引擎:解析和执行js来实现网页的动态效果。jquery
常见的浏览器内核有哪些?android
html5有哪些新特性,移除了哪些元素?如何处理html5新标签的浏览器兼容问题?如何区分HTML和HTML5?ios
简述一下你对html语义化的理解?
html5的离线存储怎么使用,工做原理能不能解释一下?
在html标签上添加上manifest="cache.manifest"
在cache.manifest文件中配置
#CACHE MANIFEST
#v0.11
CACHE:
js/app.js
css/style.css
NETWORK:
net.png
FALLBACK:
//offline.html
复制代码
工做原理:
会出现的问题:
请描述一下cookies,sessionStorage和localStorage的区别?
cookie数据始终在同源的http请求中携带,在客户端和终端之间来回传递的,通常会加密,是用来验证身份的。sessionStorage和localStorage仅保存在客户端。
存储量大小:cookie不超过4kb;其余2个在5M或者更大。
什么时候销毁:cookie会设置有效期,过了有效期就过时了;sessionStorage窗口关闭就销毁了;localStorage窗口除非手动删除,否则一直会保存在浏览器中。
iframe有哪些缺点?
label的做用是什么?是怎么用的?
label的做用是当用户选择标签时,浏览器会将焦点自动指向label所指向的表单控件。
html5的form如何关闭自动完成功能?
给form或者须要关闭自动完成功能的标签添加autocomplete=off。
如何实现浏览器内多个标签页之间的通讯?
webSocket如何兼容低浏览器?
页面可见性(Page Visibility API)能够有哪些用途?
如何在页面上实现一个圆形的可点击区域?
实现不使用border画出1px高的线,在不一样浏览器的标准模式和怪异模式下都能保持同样的效果。
.line{
height:1px;
overflow:hidden;
background:red;
}
复制代码
网页验证码是干吗的,是为了解决什么问题。
title与h1的区别,b与strong的区别,i与em的区别
介绍一下标准的css盒子模型?
css选择符有哪些?哪些属性能够继承?
css优先级算法如何计算?
同权重:标签内部>style标签中>外部样式表
!important>id>class>tag
!important比内联优先级高
css新增伪类有哪些?
after、before、enabled、disabled、checked、first-type-of
如何居中div?
display有哪些值?说明他们的做用。
position的值relative和absolute定位原点是?
css3有哪些新特性?
请解释一下css3的flex布局,以及适用场景。
用纯css建立一个三角形的原理是什么?
利用border,三个面的border-color设置为transparent
一个满屏“品”字布局如何设计?
css多列等高如何实现?
常常遇到的浏览器的兼容性问题有哪些?缘由,解决方法?经常使用的hack技巧?
li和li之间有看不见的空白间隔是什么缘由引发的?有什么解决办法?
为何要初始化css样式?
由于浏览器兼容问题,不一样浏览器之间的标签默认属性值不一样。
absolute的containing block(容器块)计算方式跟正常流有什么不一样?
css里的visibility属性有个collapse属性值是干吗用的?在不一样浏览器下有什么区别?
position跟display、margin、overflow、float这些特性相互叠加后会怎么样?
对BFC规范(块级格式化上下文)的理解?
Block Formatting Context,BFC外部元素和内部元素互不影响。
css定义的权重。
请解释一下为何须要清除浮动?清除浮动的方式。
什么是外边距合并?
2个相邻块级元素的垂直外边距会合并。合并的原则是取二者边距的最大值。
zoom:1的清除浮动原理?
移动端的布局用过媒体查询吗?
使用css预处理器吗?喜欢哪一个?
css优化、提升性能的方法有哪些?
浏览器是怎么样解析css选择器的?
在网页中应该使用奇数仍是偶数字体?为何?
margin和padding分别适合什么场景使用?
抽离样式模块怎么写
元素竖向的百分比设定是相对于容器的高度吗?
全屏滚动的原理是什么?用到了css的哪些属性?
什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的ie?
视差滚动效果,如何给每页作不一样的动画?(回到顶部,向下滑动再次出现,和只出现一次分别怎么作?)
::before和:after中双冒号和单冒号有什么区别?解释一下这2个伪元素的做用。
如何修改chrome记住密码后自动填充表单的黄色背景?
对line-height的理解。
设置元素浮动后,该元素的display值是多少?
怎么让chrome支持小于12px的文字。
让页面的字体变清晰,变细,用css怎么作?
font-style属性可让它赋值为“oblique”,oblique是什么意思?
position:fixed;在android、ios下无效怎么处理?
fixed元素是相对于整个页面固定位置的,移动端当页面滚动时,滚动的是viewport。
在html头部添加viewport的设置。
若是须要手动写动画,你认为最小时间间隔是多久?为何?
多数显示器的频率是60hz,也就是1秒钟60帧,1000/60=16.67ms。
display:inline-block何时会显示间隙?
overflow:scroll不能平滑滚动的问题怎么处理?
有一个高度自适应的div,里面有2个div,1个高度100px,但愿另一个填满剩下的高度。
png、jpg、gif这些图片格式解释一下,分别何时用。有没有了解过webp?
什么是cookie隔离?
style标签写在body后与body前有什么区别?
什么是css预处理器/后处理器?
rem布局的优缺点?
rem和em有什么区别?
rem是根据根元素的font-size大小定的;em是根据父元素的font-size大小定的。
介绍js的基本数据类型。
介绍js有哪些内置对象?
Object是javascript中全部对象的父对象。
数据封装类对象:Object、Number、String、Boolean、Array
其余对象:Function、Arguments、Math、Date、RegExp、Error
说几条javascript的基本规范?
javascript有几种类型的值?你能画一下他们的内存图吗?
如何将字符串转化为数字,例如‘12.3b’?
如何实现数组的随机排序?
javascript建立对象的几种方式?
eval是作什么的?
什么是window对象?什么是document对象?
null、undefined的区别?
null 表示一个对象是“没有值”的对象,也就是值为“空”。
undefined 表示一个变量声明了,没有赋值。
写一个通用的事件侦听器函数。
["1","2","3"].map(parseInt)答案是什么?
什么是闭包?为何要用它?
javascript代码中的“use strict”;是什么意思?使用它的区别是什么?
如何判断一个对象是否属于某个类?
if(a instanceOf Person){
alert("yes");
}
复制代码
new操做符具体干了什么?
javascript,有一个函数,执行时对象查找时,永远不会去查找原型。
hasOwnProperty。
对json的了解。
json是轻量级的数据交换格式。它是javascript的一个子集,数据格式简单,易于读写,占用带宽小。
ajax是什么?如何建立一个ajax?
ajax解决浏览器缓存问题?
同步和异步的区别?
同步,所有在一个线程上完成,不一样进程为协同完成某项工做而在前后次序上调整(经过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性.
如何解决跨域问题看这
页面编码和被请求的资源编码不一致怎么处理?
服务器代理转发时,如何处理cookie?
模块化开发怎么作?AMD、CMD规范区别?requireJS核心原理是什么?(如何动态加载的?如何避免屡次加载?如何缓存的?)
JS模块加载器的轮子怎么造,如何实现一个模块加载器?
谈谈你对ECMAScript6的了解。
Promise的理解?
Promise对象有2个特色:
Promise构造函数接受一个函数做为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由javascript引擎提供,不用本身部署。
const promise = new Promise(function(resolve,reject){
//somecode
if(/**异步操做成功*/){
return resolve();
}else{
return reject();
}
})
复制代码
Promise实例生成后,可使用then方法分别指定resolved状态和rejected状态的回调函数。
promise.then(function(value){
},function(error){
})
复制代码
异步加载JS方式有哪些?
document.write和innerHTML的区别。
DOM操做——怎样添加、移除、替换、插入、复制、建立和查找节点?
什么是伪数组?怎么转换成数组?
call()和apply()的区别?还有bind()?
数组和对象有哪些原生方法?
数组
方法 | 描述 |
---|---|
concat() | 链接2个或更多的数组,并返回结果 |
join() | 把数组的全部元素放入字符串,并用指向的分隔符分隔 |
pop() | 删除并返回数组的最后一个元素 |
push() | 向数组末尾添加一个或更多的元素,并返回新的长度 |
reverse() | 将数组反转 |
shift() | 删除并返回数组的第一个元素 |
slice() | 从某个已有的数组返回选定的元素 |
sort() | 数组排序 |
splice() | 删除元素,并向数组添加新元素 |
unshift() | 向数组开头添加一个或更多元素,并返回新的数组长度 |
toString() | 把数组转换为字符串,并返回 |
toLocaleString() | 把数组转换为本地数组,并返回结果 |
toSource() | 返回该对象的源代码 |
valueOf() | 返回数组对象的原始值 |
Object对象实例方法
方法 | 描述 |
---|---|
valueOf() | 返回当前对象对应的值。 |
toString() | 返回当前对象对应的字符串形式。 |
toLocaleString() | 返回当前对象对应的本地字符串形式。 |
hasOwnProperty() | 判断某个属性是否为当前对象自身的属性,仍是继承自原型对象的属性。 |
isPrototypeOf() | 判断当前对象是否为另外一个对象的原型。 |
propertyIsEnumerable() | 判断某个属性是否可枚举。 |
ECMAScript6怎么写class,为何会出现class这东西?
class Cat{
constructor(name){
this.name=name;
}
makeSound(){
alert("喵喵喵");
}
}
//必定要new
const cat = new Cat("猫");
cat.makeSound();
//表达式
const Cat = class{
makeSound(){
alert("喵喵喵");
}
}
//不存在变量提高,与继承有关
new Foo(); //ReferenceError
class Foo{}
//静态方法 静态方法中的this指向的是类,不是类的实例
//静态属性和和实例属性 尚未静态属性 提案中
复制代码
JS怎么实现一个类?怎么实例化这个类?看这
构造函数法
function Cat(){
this.name="猫";
}
//类的属性和方法能够定义在构造函数的prototype对象上
//为何不用this.makeSound?
//若是用this.makeSound每次建立对象都会复制makeSound到这个对象上,开销大
Cat.prototype.makeSound = function(){
alert("喵喵喵");
}
var cat = new Cat();
alert(cat.name);
cat.makeSound();
复制代码
Object.create()法 变量声明法
var Cat = {
name:"猫",
makeSound:function(){
alert('喵喵喵');
}
}
var cat = Object.create(Cat);
alert(cat.name);
cat.makeSound();
//不兼容的老浏览器
if(!Object.create()){
Object.create = function(o){
function F(){
}
F.prototype = o;
return new F();
}
}
复制代码
极简主义法
var Cat = {
createNew:function(){
var cat = {};
cat.name="猫";
car.makeSound=function(){
alert("喵喵喵");
}
return cat;
}
}
var cat1 = Cat.createNew();
alert(cat1.name);
cat1.makeSound();
复制代码
继承?
var Animal = {
createNew:function(){
var animal = {};
animal.sleep = function(){
alert("睡觉");
}
return animal;
}
}
var Cat = {
sound:'喵喵喵',//静态属性 共享
createNew:function(){
var cat = Animal.createNew();
var name = "猫";//私有属性
cat.name= name;
cat.makeSound = function(){
alert(Cat.sound);
};
cat.changeSound = function(x){
Cat.sound = x;
};
return cat;
}
}
var cat1 = Cat.createNew();
var cat2 = Cat.createNew();
cat1.sleep();
cat1.makeSound();
cat2.makeSound();
cat1.changeSound("汪汪汪");
cat1.makeSound();
cat2.makeSound();
复制代码
javascript原型、原型链?有什么特色。
每一个对象都会在其内部初始化一个属性,就是prototype(原型),当咱们访问一个对象的属性时,若是这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有本身的prototype,因而就这样一直找下去,也就是咱们平时所说的原型链的概念。
关系:instance.constructor.prototype = instance.__proto__
特色:
JavaScript对象是经过引用来传递的,咱们建立的每一个新对象实体中并无一份属于本身的原型副本。当咱们修改原型时,与之相关的对象也会继承这一改变。
当咱们须要一个属性的时,Javascript引擎会先看当前对象中是否有这个属性, 若是没有的话,
就会查找他的Prototype对象是否有这个属性,如此递推下去,一直检索到 Object 内建对象。
function Func(){}
Func.prototype.name = "Sean";
Func.prototype.getInfo = function() {
return this.name;
}
var person = new Func();//如今能够参考var person = Object.create(oldObject);
console.log(person.getInfo());//它拥有了Func的属性和方法
//"Sean"
console.log(Func.prototype);
// Func { name="Sean", getInfo=function()}
复制代码
javascript做用域链?
当查找变量的时候,会先从当前上下文的变量对象中查找,若是没有找到,就会从父级(词法层面上的父级)执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表就叫作做用域链。
javascript中的做用域与变量声明提高?
全局做用域和局部做用域。
变量声明提高,变量会先声明,在任意代码执行前先声明。
谈谈对this的理解。
如何编写高性能的javascript?
哪些操做会形成内存泄漏?
内存泄漏指的是因为疏忽或错误形成程序未能释放已经再也不使用的内存。
垃圾回收机制2种方式:标记清除和引用计数。
意外的全局变量引发的内存泄漏、闭包的使用不当、没有清理DOM元素的引用、被遗忘的定时器或回调、子元素存在引用父元素删除引发的内存泄漏、循环、控制台日志、EventListener
What is a Polyfill?
polyfill是一个js库,是为了抚平不一样浏览器内核之间对js实现的差别。
咱们给一个dom同时绑定两个点击事件,一个用捕获,一个用冒泡。会执行几回事件,会先执行冒泡仍是捕获?
会执行2次事件,先执行捕获事件,再执行冒泡事件。
什么是事件?IE与火狐的事件机制有什么区别?
IE事件对象只有x、y,没有pageX、pageY。
火狐反之。
冒泡事件和捕获事件。
什么是JS的函数节流和函数防抖?
angular2+中的编译模式?有什么区别?
jit编译模式
aot编译模式
二者的区别在于: