HTML
1.html5语义化标签的理解
答:首先肯定是便于人的理解。看标签知其意。增加代码的可读性。其次,让机器能够读懂(SEO)
2.块级元素,行内元素有哪些
块级:div,p,h1-h6,ul,li,table……
行内:span,button,img,input,a,strong……
3.src和href区别
src:一般用在img标签,用来加载图片的路径,同时会暂停其他资源的下载和处理。
href:一般用在a标签,它的加载不会暂停其他资源的下载和处理。
4.doctype的作用
告诉浏览器的解析器使用哪种html规范来解析页面。而如果没有doctype会导致文档不以标准模式解析,而以混杂模式解析(不同浏览器有不同的渲染效果)。
5.html5新特性
简化了文档申明
简化了编码申明
删除了一些标签,如font,i
增加了新的标签,如header,nav,footer,section,aside,audio,canvas等
CSS
1.css选择器优先级
!import > 内联> id > class == 伪类 == 属性> 标签
2.flex布局
设置display为flex,其所有子元素都是它的项目。
默认两条轴(水平和垂直)
flex-direction:设置主轴方向(row,column)
justify-content:主轴排列方式
align-items:纵轴排列方式
justify-wrap:规定当一行排列不下的时候是否换行
对于一个容器的项目,可以用order规定其排列顺序
flex-grow:指定当前排序空间有剩余时候,项目放大比例。
flex-shrink:指定当前排序空间不足,项目缩小比例。
3.position有几个值
absolute:绝对定位。相对于离自己最近的有定位的父级元素定位。
relative:相对定位。相对于自身定位。
fixed:粘性定位。相对于浏览器窗口定位。
static:默认值。没有定位。
Javascript:
1.数据类型
简单数据类型:number,string,boolean,null,undefined(可以通过typeof判断)
复杂数据类型:object,array,function等(通过instanceof判断——原理:原型链)
2.bind,call,apply区别
相同点:都是用来改变this的指向的.
bind与call,apply最大的区别就是,bind不会立即被调用,而是返回一个新的函数,其内的this指向创建它时传入bind的第一个参数。
apply和call都是为了改变某个函数运行时的上下文而存在的。
apply和call区别,apply的第二个参数是一个参数数组,call第二个参数及以后都是数组里的元素。
即:bind:返回绑定函数,传入参数数列。
call:传入参数队列
apply:传入参数数组
3.闭包
即有权访问另一个函数作用域中的变量的函数。
是作用域的特殊情况:1)作为函数返回值返回2)作为参数传递
作用:隐藏变量,避免全局污染。可以读取到函数内部的变量。
4.原型和原型链
在js中,每当定义一个函数数据类型时,都会自身带一个显示原型prototype属性。
每一个class都具有自己的显示原型,而它的实例都有自己的隐式原型。每一个实例对象的隐式原型都指向它对应类的显示原型,一层一层查找,直到object或null
5.实现继承的几种方式
首先是原型链继承
其次构造函数继承
es6继承(extends)
5.浅拷贝and深拷贝
浅拷贝只是复制某个对象的指针,而不是对象本身,当一个值改变时,另一个也会跟着变化。
深拷贝是另外创造了一个对象,新对象和旧对象不共享内存,即一个改变,另一个不会跟着变化。
6.作用域
可访问对象,对象,函数的集合。
7.防抖和节流
防抖是说对于短时间内连续触发的事件,防抖的含义是在某个时间期限内,事件处理函数只执行一次。
节流是说对于短时间内发生同一件事件,在函数执行一次后,在时间期限内不再工作,直到过了期限时间。
8.dom节点操作的方法
创建节点:document.createElement(eName)
创建节点属性:document.getAttribute(name)
创建文本节点:document.createTextNode(text)
添加节点:document.insertBeforeNode(newNode,referenceNode)
document.appendChild(newNode)
删除节点:parentNode.removeChild(node)
9.ajax请求
原生的ajax:
创建异步对象
var xhr = new XMLHttpRequest()
设置请求行open
xhr.open('get','url参数')
让异步对象接收服务器的响应数据
10.== 和===
==:值相等
===:值相等且类型也相等
11.重绘和回流
重绘:改变dom元素的颜色,不影响布局的会重新渲染页面。
回流:变dom原色的大小,宽高,影响页面布局的,会回流。回流必然发生重绘。
12.前端性能优化
减少请求数:合并资源(精灵图),减少http请求数。
加快请求速度:预解析dns,减少域名数
缓存:http请求协议缓存,离线缓存
13.跨域问题
协议,域名,端口三者一个不一样,就是跨域。
解决跨域问题
1)jsonp:利用script标签,没有跨域限制的漏洞,网页可以得到其他来源的动态产生的json数据。
2)cors:服务器设置。
HTTP:
1.状态码:
200:成功
404:not found
301:永久重定向
303:暂时重定向
400:客户端错误
401:当前用户验证
403:服务器已经得到请求,但是拒绝执行(没有权限)
500:服务器错误。