目录
HTML 题目: X-UA-Compatible
CSS 题目: vw vh
JavaScript 题目: forEach,for-in,for-of
HTML
题目:X-UA-Compatible
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
这是IE8的专用标记,用来指定IE8浏览器去模拟某个特定版本的IE浏览器的渲染方式,以此来解决部分兼容问题。
IE=edge
edge 模式告诉 IE 以最高级模式渲染文档,也就是任何 IE 版本都以当前版本所支持的最高级标准模式渲染,避免版本升级造成的影响。即就是什么版本 IE 就用什么版本的标准模式渲染。
chrome=1
提示 IE 用户安装 Google Chrome Frame,Google 官方提供了对 Google Frame 插件安装情况的检测,这里直接调用方法即可,如果检测到 IE 并未安装 Google Frame,则弹出对话框提示安装。
最佳的兼容方式是结合上述两种: content=”IE=edge,chrome=1
这样写可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果未安装GCF,则使用最高版本的IE内核进行渲染。
Google Chrome Frame(谷歌内嵌浏览器框架GCF),这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器。
CSS
题目: vw vh
vw vh 是响应式布局的单位,一种不需要 JS 与 CSS耦合在一起的视口单位
- vw = view width
- vh = view heigh
视口单位中的“视口”,桌面端指的是浏览器的可视区域,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。;移动端指的就是Viewport中的Layout Viewport。
- vw 1vw = 视口宽度的1% window.innerWidth = 1680px 10vw = 0.1*1680 = 168px;
- vh 1vh = 视口高度的1%
- vmin 选取vw和vh中最小的那个
- vmax 选取vw和vh中最大的那个
vh/vw与%区别
- % 元素的祖先元素
- vh/vw 视口的尺寸
JavaScript
题目: forEach,for-in,for-of
forEach(function(value, index, array){})
特点:只能遍历数组,且不能中断循环
var obj = [1,3,7];
obj.forEach(function(value){
console.log(value);
});
//1
//3
//7
for(var value in obj)
特点
- 迭代对象的可枚举属性
- 遍历对象的键
- 一般不推荐遍历数组,因为for in遍历后的数据不能保证顺序,而且原型链上的属性也会被遍历到,可用hasOwnProperty过滤掉原型上的属性。
var obj = {
a: 1,
b: 2,
c: 3
};
for (var key in obj) {
console.log("obj." + key + " = " + obj[key]);
}
// 输出:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
for(let value of obj)
特点
- 遍历可迭代对象定义要迭代的数据,遍历实现iterator接口的成员,即只循环可迭代对象(Array, Map, Set, String, TypedArray,arguments 对象等等)的可迭代属性,不可迭代属性在循环中被忽略了.
- 不会循环对象的key,只会循环出数组的value,因此for…of不能循环遍历普通对象,
- 可以通过break, continue, throw 或return控制关闭迭代器
let iterable = [3, 5, 7];
iterable.foo = "hello";
for (let i in iterable) {
console.log(i); // 0, 1, 2, "foo"
}
for (let i of iterable) {
console.log(i); // 3, 5, 7
}