JavaScript每日五题面试题(第六天)
1、0.1+0.2===0.3吗?为什么?
不相等。 由于计算机底层存储都是基于二进制的,需要事先由十进制转换为二进制存储与运算,这整个转换过程中,类似于 0.1、0.2 这样的数是无穷尽的,无法用二进制数精确表示。JavaScript 采用的是 IEEE 754 双精确度标准,能够有效存储的位数为 52 位,所以就需要做舍入操作,这无可避免的会引起精度丢失。另外我们在 0.1 与 0.2 相加做对阶、求和、舍入过程中也会产生精度的丢失。
2、什么是事件委托?
事件委托就是利用事件冒泡,只定制一个事件处理程序,就可以管理某一类型的所有事件。事件委托,称为事件代理,是JS中很常用的绑定事件的方法。事件委托就是把原本需要绑定在子元素上面的事件委托给父元素,让父元素担当事件监听的职务,原理是DOM元素的事件冒泡。
3、get和post请求的区别?
1.GET在浏览器回退不会再次请求,POST会再次提交请求
2.GET请求会被浏览器主动缓存,POST不会,要手动设置
3.GET请求参数会被完整保留在浏览器历史记录里,POST中的参数不会
4.GET请求在URL中传送的参数是有长度限制的,而POST没有限制
5.GET参数通过URL传递,POST放在Request body中
6.GET参数暴露在地址栏不安全,POST放在报文内部更安全
7.GET一般用于查询信息,POST一般用于提交某种信息进行某些修改操作
8.GET产生一个TCP数据包;POST产生两个TCP数据包
4、实现继承的方式有哪些?
第一就是通过原型链继承
第二是通过构造函数继承 这个是无法使用到父类的原型
第三就是组合继承综合了原型链继承和构造函数继承,将两者的优点结合了起来
5、Http和Https区别?
1.HTTP
的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
2.HTTP
是不安全的,而 HTTPS 是安全的
3.HTTP
标准端口是80 ,而 HTTPS 的标准端口是443
4.在OSI
网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层
5.HTTP
无法加密,而HTTPS 对传输的数据进行加密
6.HTTP
无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书