一省:HTML
9. 什么是浏览器内核?浏览器内核有哪些?
浏览器内核: 通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
常见的浏览器内核:
- Gecko:早期被Netscape和Mozilla Firefox浏览器浏览器使用;
- Trident:微软开发,被IE4~IE11浏览器使用,但是Edge浏览器已经转向Blink;
- Webkit:苹果基于KHTML开发、开源的,用于Safari,Google Chrome之前也在使用;
- Blink:是Webkit的一个分支,Google开发,目前应用于Google Chrome、Edge、Opera等;
二省: CSS
9. CSS 单位中 px、em 和 rem 的区别?
- px是像素(pixel)的意思,绝对单位。像素 px 是相对于显示器屏幕分辨率而言的,是一个虚拟长度单位,是计算机系统的数字化图像长度单位;
- em是相对长度单位,会随着父元素字体大小改变而改变。
- rem是相对单位,会随着根元素字体大小改变而改变。
<html lang="en"> <head> <style> html { font-size: 30px; } .father { font-size: 10px; } .son { width: 10em; height: 10em; background: tomato; } .bro { width: 10rem; height: 10rem; background: skyblue; } </style> </head> <body> <div class="father"> <div class="son"></div> <div class="bro"></div> </div> </body> </html>
三省:JavaScript
9. new 操作符具体干了什么?
- 创建一个空对象。
- 将新对象的proto赋值为构造函数的prototype属性。
- 将this指向新对象,执行构造函数内部的代码。
- 如果构造函数返回非空对象,则返回该对象,否则返回this。
//使用new操作符 function Person(obj) { this.name = obj.name; this.age = obj.age; } const p1 = new Person({ name: "Jack", age: 20 }) console.log(p1);//Person {name: 'Jack', age: 20}
//不使用new来实现 function Person(obj) { var o = { } o.__proto__ = this.Person.prototype o.name = obj.name; o.age = obj.age; return o } const p2 = Person({ name: 'Mick', age: 18 }) console.log(p2);//Person {name: 'Mick', age: 18}