基本信息
一、ES6中const定义的属性是否可以改变
可以!这是由于对象或者数组属于引用数据类
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。
对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但是对于符合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。
HTML/HTML5
一、什么是语义化
html5的标签header,footer,section等就是语义化
语义化优点:
1.易于用户阅读,样式丢失的时候能让页面呈现清晰的结构
2.有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重
3.方便其他设备解析,有盲人阅读器根据语义渲染网页
4.有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐
二、HTML5的新特性
1.语义标签
<header> 定义文档头部区域 <footer> 定义文档的尾部区域 <nav> 定义文档的导航 <section> 定义文档的节 <article> 定义文章 <aside> 定义页面以外的内容 <details> 定义用户可以看到或者隐藏的额外细节 <summary> 标签包含details元素的标题 <dialog> 定义对话框 <figure> 定义自包含内容,如图表 <main> 定义文档主内容 <mark> 定义文档的主内容 <time> 定义日期/时间
2.增强型表单
新的input输入特性:color、date、datetime、datetime-local、month、week、time、email、number、url、tel、search、range
新增五个表单元素:<datalist>、<progress>、<meter>、<keygen>、<output>
新增表单属性:placehoder、required、pattern、min/max、step、height/wdith、autofocus、multiple
3.音频和视频
4.canvas绘图
5.svg绘图
6.地理定位 getCurrentPosition()
7.拖放API draggable
8.WebWorker 通过加载一个脚本文件,进而创建一个独立工作的线程,在主线程之外运行
9.webStorage 新增的本地存储解决方案之一
10.WebSocket 全双工通信机制
三、如何解决ajax无法后退的问题
html5里引入了新的API,即:history.pushState,history.replaceState
可以通过pushState和replaceState接口浏览器历史,并且改变当前页面的URL
onpopstate监听后退
四、Ajax短轮询、Ajax长轮询和websocket
Ajax长轮询:server收到请求后如果有数据,立即响应请求;如果没有数据就会停留一段时间,这段时间内,如果server请求的数据到达,就会立即响应;如果这段时间过后,还没有数据到达,则以空数据的形式响应http请求;若浏览器收到的数据为空,会再次发送同样的http请求到server。缺点:没有数据时,会造成服务器资源浪费。
Ajax短轮询:server收到请求,不管是否有数据到达都直接响应http请求;如果浏览器收到的数据为空,则隔一段时间,浏览器又会发送相同的http请求到server以获取数据响应。缺点:消息交互的实时性较低
WebSocket:服务器可以主动推送消息给服务器;端轮询每次http请求前建立连接,长轮询是相邻几次请求前都要建立连接;http请求响应完成后,服务器就会断开连接,且信息都会忘记;websocket只需要HTTP握手。
总结:
1.轮询就是定时发送请求,响应请求
2.长轮询,定时发送请求,响应请求,客户端接收到响应后,继续发送请求,从而达到不间断
3.socket就是发出请求,这个请求是长连接,服务器端连接后,就不需要客户端发送请求,服务器端可以向客户端推送数据
五、Doctype作用?严格模式与混杂模式如何区分?意义?
<!DOCTYPE>声明位于文档的最前面,处于标签之前。告知浏览器以何种模式来渲染文档,以及用来告知web浏览器页面使用了哪种HTML版本。
严格模式的排版和js运作模式是以该浏览器支持的最高标准运行
在混杂模式中,页面已宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作
DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现
六、Doctype多少种文档类型?(HTML 4.01版本)
该标签可声明DTD类型,分别表示严格版本、过度版本以及基于框架的HTML文档
HTML4.0.1 规定了三种文档类型:Strict、Transitional以及Frameset
XHTML 1.0 规定了三种XML文档类型:Strict、Transitional以及Franmeset
Standards(标准)模式用于呈现遵循最新标签的网页,而Quirks模式用于呈现为传统浏览器而设计的网页
七、HTML与XHTML有什么区别
1.XHTML元素必须被正确地嵌套
2.XHTML元素必须被关闭
3.标签名必须用小写字母
4.XHTML文档必须必须拥有根元素
CSS
一、content-box和border-box,为什么看起来content-box更合理,但还是经常使用border-box?
box-sizing属性允许您以特定的方式定义匹配某个区域的特定元素
语法:box-sizing:content-box|border-box|inherit;
content-box:padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和;即:Element width = width + border + padding
border-box:padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值。即使定义有border和padding也不会改变对象的实际宽度。即: Element width = width