7.5 阿里电话面试
1.CSS单位
1.px 像素点
2.em 相对于当前元素设置的的font-size计算,font-size未设置的话一般默认是16px
3.rem 相对于root元素(<html>)的font-size计算
2.浏览器的四大存储,如何在本地存储文件,如何规定在本地的存储时间
cookie session sessionStorage localStorage
本地存储一般使用localstorage
如何规定本地存储时效:
localstorage本身是永久有效的,但是可以在localstorage中加入关于时间的信息,每次读取的时候与当前的时间信息进行比对,符合一定条件就删除当前的localstorage
3.iframe和postMessage实现跨域
1.iframe实现跨域
跨域页面修改自己的hash,主页面定时监测iframe的hash变化并执行相应的处理函数
2.postMessage实现跨域
发送方通过window.postMessage(message, origin)发送消息
接收方通过定义window的Message事件来接收消息
4.获取数组中最大值
ES6极简写法:
Math.max(...arr);
5.通过原型链的方式实现继承,继承的几种方法?
原型链继承:
person.prototype = new main(); person.prototype.constructor = person;
并且要先继承再定义自己的属性和方法
构造函数继承:
在子类的构造函数中call父类的构造函数,再新建自己的属性和方法
function person(){ main.call(this) this.foo = "bar"; }
拷贝继承:
在子类的构造函数中新建一个父类对象,并拷贝其每一条属性给新建的返回对象。缺点是耗费内存
实例继承:
子类的构造函数返回新增了子类独有属性和方法的新父类实例
组合继承:
组合了原型链继承和构造函数继承的方式