1.如何理解HTML语义化
语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化),便于开发者阅读和写出更优雅的代码的同时,让浏览器的爬虫和机器很好的解析。
好处:
有利于SEO,有助于爬虫抓取更多的有效信息,爬虫是依赖于标签来确定上下文和各个关键字的权重。
语义化的HTML在没有CSS的情况下也能呈现较好的内容结构与代码结构
方便其他设备的解析
便于团队开发和维护
如何做:
- 尽可能少的使用无语义的标签div和span;
- 在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;
- 不要使用纯样式标签,如:b、font、u等,改用css设置。
- 需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
- 表单域要用fieldset标签包起来,并用legend标签说明表单的用途;
- 每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。
2.深拷贝与浅拷贝
深浅拷贝的区别只适用于array【数组】和object【对象】。
“深拷贝”,就是能够实现真正意义上的数组和对象的复制,只要递归调用”浅拷贝”就行了。
☆数组拷贝情况:
浅拷贝:相当于使两个数组指针指向相同的地址,任一个数组元素发生改变,影响另一个。
深
拷贝:两数组指针指向不同的地址,数组元素发生改变时不会相互影响。
☆对象拷贝情况:
浅拷贝:只拷贝对象的第一层属性,对于属性中包含的属性不会复制;由于JavaScript对象均以地址的方式存 贮,所以浅复制导致多个对象的属性均指向同一块地址。
深拷贝:对对象的每一层属性进行递归复制,深层次的属性也不会指向同一块地址【同一个对象】。
3.对websocket的了解(并不了解)
websocket是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。