当不同的浏览器处理同一个页面时,表现或行为会有些差异,把这些差异我们称为“浏览器的兼容性问题“。
主要是由于各浏览器的内核是不同的,因此可以说,浏览器间内核的差异是产生兼容性问题的根本原因。内核分为渲染引擎和脚本引擎,常见的浏览器的内核如下:
更多关于浏览器内核的信息,请查询 维基百科-不同浏览器的比较
浏览器的工作模式:如果一个页面能使各浏览器都工作在“标准模式”下,那么各浏览器都将尽量兼容标准,因此各浏览器之间表现出的差异是很少的。相反,如果一个页面使各浏览器都工作在“混杂模式”下,那么各浏览器都将尽量向后兼容,因此各浏览器之间表现出的差异将会最大化。
相关资料查询请看:兼容性问题与浏览器的内核及渲染模式
错题整理:
1.
var a = 10;
function a(){};
console.log(typeof a); //number
2.
Math.round(11.5)+Math.round(-11.5) //12-11=1
3.
.list{color:black;}
.list>li:nth-child(2n){color: red;}
.list>li:nth-child(3n+1){color: green;}
.list>li:nth-child(3n+2){color: blue;}
</style>
<body>
<ul class="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
黑色的为3,9
对于对象可以找到其enumerable为false的方法:
其中 Object.getOwnPropertySymbols(obj)方法和Reflect。ownKeys(obj)方法可找到其enumerable为false