一省: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}