一省:HTML
15. cookie,sessionStorage和localStorage的区别?
1. cookie: 直译是"小饼干"的意思,在web中就是存在客户端的“一小块”数据。一个cookie大小不超过4kb,在设置的过期时间过期之后会消失,每次请求都会与服务器交互。\
2. sesssionStorage: 由HTML5提供的用于在客户端存储数据的对象,存储大小比cookie大得多,最少5M(由浏览器决定,不同浏览器标准不一样)。sessionStorage只存储会话数据,即当前窗口关闭就删除数据。数据自动不会和服务器交互。\
3. localStorage: 与sessionStorage类似,只是存储时间不同,localStorage的数据除非手动删除,否则数据不会消失。
二省: CSS
15. 精灵图是什么?有什么用处?
精灵图(CSS Sprites): 把网页中用到的一些小的背景图整合到一张图片上,通过设置背景图位置和大小来实现效果,以减少网络请求的次数和大小,这种图片就叫做精灵图。不过随着SVG和iconfont的发展,雪碧图用的越来越少了。
三省:JavaScript
15. 原生对象、内置对象、宿主对象的联系和区别?
1. 原生对象(native object):
也叫本地对象,ECMA-262 把原生对象定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。使用时需要用new关键字来创建对应的实例对象。它们包括:
Object、Function、String、Array、
Boolean、Number、Date、RegExp、Promise、
Map、WeakMap、Set、WeakSet、
XMLHttpRequest、
Error、EvalError、RangeError、
ReferenceError、SyntaxError、
TypeError、URIError
//如若不全,请见谅
2. 内置对象(build-in object): ECMA-262 把内置对象定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。ECMA-262 只定义了两个内置对象,即 Global(在浏览器中为Window) 和 Math(它们也是原生对象,根据定义,每个内置对象都是原生对象)。现在很多时候我们也把原生对象和内置对象都叫做内置对象,MDN对内置对象做了一个比较全面的统计:
MDN - JavaScript 标准内置对象。\
PS: Global和Math又被称为单例内置对象,使用时不需要new关键字。
3. 宿主对象(host object): 所有非内置对象都是宿主对象,即由 ECMAScript 实现的宿主环境提供的对象。所有 BOM 和 DOM 对象都是宿主对象。