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;

原文地址:https://www.cnblogs.com/liangxin/p/6550480.html