如何对网站的文件和资源进行优化?



期待的解决方案包括:

1、文件合并。

2、文件最小化/文件压缩。

3、使用CDN托管。

4、缓存的使用(多个域名来提供缓存)。

5、其他。

减少页面加载时间的方法



1、优化图片。

2、图像格式的选择(GIF:提供的颜色较少,可用在一些对颜色要求不高的地方) 。

3、优化CSS(压缩合并css,如 margin-top, margin-left...)。 

4、网址后加斜杠(如www.dongzaizhan.xyz/目录,会判断这个目录是什么文件类型,或者是目录)。

 

5、标明高度和宽度(如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了)。

6、减少http请求(合并文件,合并图片)。

null和undefined的区别?



null是一个表示"无"的对象,转为数值时为0 。

undefined是一个表示"无"的原始值,转为数值时为NaN 。

当声明的变量还未被初始化时,变量的默认值为undefined 。

null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象 。

undefined表示 “缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:

1. 变量被声明了,但没有赋值时,就等于 undefined 。

2. 调用函数时,应该提供的参数没有提供,该参数等于 undefined 。

3. 对象没有赋值的属性,该属性的值为 undefined 。

4. 函数没有返回值时,默认返回 undefined 。

null表示“没有对象”,即该处不应该有值。典型用法是:

1. 作为函数的参数,表示该函数的参数不是对象 。

2. 作为对象原型链的终点 。

new操作符具体干了什么?



1、创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型。

2、属性和方法被加入到this引用的对象中。

3、新创建的对象由this所引用,并且最后隐式的返回this。

var obj={};

obj._proto_=Base.prototype;

Base.call(obj);

对JSON的了解?



JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集。数据格式简单,易于读写,占用宽带小。

{"age":"12","name":"back"}

js延迟加载的方式有哪些?



1、defer和async。

2、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)。

3、按需异步载入js。

如何解决跨域问题?



1、jsonp(jsonp的原理是动态插入script标签)。

2、document.domain+iframe。

3、window.name、window.postMessage。

4、服务器上设置代理页面。

哪些操作会造成内存泄漏?



内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。

垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。

1、setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。

2、闭包

3、控制台日志

4、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)