无聊的冷知识5

1、javascript 继承的 6 种方法?

1. 原型链继承
2. 借用构造函数继承
3. 组合继承(原型+借用构造)
4. 原型式继承
5. 寄生式继承
6. 寄生组合式继承

2、javascript 对象的几种创建方式?

1. 工厂模式
2. 构造函数模式
3. 原型模式
4. 混合构造函数和原型模式
5. 动态原型模式
6. 寄生构造函数模式
7. 稳妥构造函数模式

3、关于 javascript 中 apply()和 call()方法的区别?

相同点:两个方法产生的作用是完全一样的
不同点:方法传递的参数不同
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
apply()接收两个参数,一个是函数运行的作用域(this),另一个是参数数组。
call()方法第一个参数与 apply()方法相同,但传递给函数的参数必须列举出来

4、简述一下 JS 中的闭包?

闭包用的多的两个作用:读取函数内部的变量值;让这些变量值始终保存着(在内存中)。
同时需要注意的是:闭包慎用,不滥用,不乱用,由于函数内部的变量都被保存在内存中,
会导致内存消耗大。

5、说说你对 this 的理解?

在 JavaScript 中,this 通常指向的是我们正在执行的函数本身,或者是,指向该函数所属
的对象。
全局的 this → 指向的是 Window
对象中的 this → 指向其本身
事件中 this → 指向事件对象

6、简述一下你对 web 性能优化的方案?

1、尽量减少 HTTP 请求
2、使用浏览器缓存
3、使用压缩组件
4、图片、JS 的预载入
5、将脚本放在底部
6、将样式文件放在页面顶部
7、使用外部的 JS 和 CSS
8、精简代码

7、定时器 setInterval 有一个有名函数 fn1,setInterval(fn1,500)与setInterval(fn1(),500)有什么区别?

第一个是重复执行每 500 毫秒执行一次,后面一个只执行一次。

8、谈谈浏览器的内核,并且说一下什么是内核?

浏览器内核又可以分成两部分:渲染引擎和 JS 引擎。它负责取得网页的内容(
HTML、XML、
图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显
示器或打印机。JS 引擎则是解析 Javascript 语言,执行 javascript 语言来实现网页的
动态效果

9、如何判断一个对象是否属于某个类?

使用 instanceof (待完善)
if(a instanceof Person){
alert('yes');
}

10、前端开发的优化问题

(1) 减少 http 请求次数:CSS Sprites, JS、CSS 源码压缩、图片大小控制合适;网页
Gzip,CDN 托管,data 缓存 ,图片服务器。
(2) 前端模板 JS+数据,减少由于 HTML 标签导致的带宽浪费,前端用变量保存 AJAX
请求结果,每次操作本地变量,不用请求,减少请求次数
(3) 用 innerHTML 代替 DOM 操作,减少 DOM 操作次数,优化 javascript 性能。
(4) 当需要设置的样式很多时设置 className 而不是直接操作 style。
(5) 少用全局变量、缓存 DOM 节点查找的结果。减少 IO 读取操作。
(6) 避免使用 CSS Expression(css 表达式)又称 Dynamic properties(动态属性)。
(7) 图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳。
(8) 避免在页面的主体布局中使用 table,table 要等其中的内容完全下载之后才会显
示出来,显示比 div+css 布局慢

你可能感兴趣的:(javascript,开发语言,ecmascript)