js中问题细节
1.http状态码
404:未找到网页
500:服务器不能处理请求,服务器内
401:Unauthorized 请求未授权
403 Forbidden 禁止访问
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)
2.你有哪些性能优化的方法
(1)图片预加载,css放在头部,js放在后面
(2)减少http请求次数,css sprites,js、css源码压缩,图片大小控制合适;网页Gzip,CDN托管,data缓存 ,图片服务器
(3)减少dom操作,用innerHtml代替DOM操作,优化js性能
(4 少用全局变量、缓存DOM节点查找的结果。减少IO读取操作
(5)避免使用CSS Expression(css表达式)又称Dynamic properties(动态属性)。当设置样式很多时使用className而不是直接操作style
(6)前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
3.内存泄漏
任何对象在你不在拥有或不再使用它之后仍旧存在。
setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)。
4.进程和线程的区别
一个程序至少有一个进程,一个进程至少有一个线程;
进程在执行过程中拥有独立的执行内存,而多个线程共享内存空间,从而极大地提高了程序的运行效率;
每个独立的线程有程序执行入口、顺序执行序列和出口,但是线程不能独立执行,必须依赖于应用程序,由应用程序控制线程执行。
从逻辑上来讲,多线程的意义在于一个应用程序中,多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别
5.介绍下对浏览器内核的认识
两部分:渲染引擎和js引擎
渲染引擎:负责解析网页内容(html.xml、图像等),生成dom树,解析css格式,作用与结构,生成渲染树,以及计算网页的显示方式,然后会输出至显示器,形成网页。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。
S引擎则:解析和执行javascript来实现网页的动态效果。
6.HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
(1)绘画 canvas;
(2)用于媒介回放的 video 和 audio 元素;
(3)本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
(4)sessionStorage 的数据在浏览器关闭后自动删除;
(5)语意化更好的内容元素,比如 article、footer、header、nav、section;
(6)表单控件,calendar、date、time、email、url、search;
(7)新的技术webworker, websocket, Geolocation;