发布于2021-10-05 21:42 阅读(874) 评论(0) 点赞(1) 收藏(5)
事件委托就是:利用冒泡的原理,把事件添加到父元素上,委托它们父级代为执行事件
优点:提高性能,减少内存,对于新添加的元素也会有之前的事件
缺点:
1. 事件委托基于冒泡,不冒泡的事件不支持
2.层级过多,冒泡过程中可能被中间层阻止
3.如果把所有事件都用事件委托,可能会出现事件误判,即不该触发事件的被绑定了
0.1+0.2 = 0.30000000000000004
首先浮点值的精确度最高可达17位小数
两数相加时,会将两束转换成二进制数,0.1和0.2转为二进制时尾数会发送无限循环,JS引擎对二进制进行截取,会造成精度的丢失。
JavaScirpt 使用 Number 类型来表示数字(整数或浮点数),遵循 IEEE 754 标准,通过 64 位来表示一个数字(1 + 11 + 52)
其实这都是因为浮点数运算的精度问题。
简单来说,因为计算机只认识二进制,在进行运算时,需要将其他进制的数值转换成二进制,然后再进行计算。
浮点数用二进制表达时是无穷的。IEEE 754 标准的 64 位双精度浮点数的小数部分最多支持53位二进制位,所以两者相加后,因浮点数小数位的限制而截断的二进制数字,再转换为十进制,就成了 0.30000000000000004,
所以在进行算术计算时会产生误差。
- <script>
- function Person(){
- this.name = name,
- this.sayName = function()
- {
- console.log(`我是${this.name}`)
- }
- }
-
- function myNew(that,...args){
- const obj = Object.creat(null)
- obj._proto_ = that.prototype
- const res = that.call(obj,...args)
- return res instanceof Object? res : obj
-
- }
- let person = myNew(Person,'小明')
- person.sayName(); //
- </script>
new在创建实例对象中过程:
key的作用主要是为了更高效的对比虚拟dom中的某个节点是不是相同节点,是用来提高diff算法的性能表现。更具体一点,vue在patch过程(执行diff的算法,可翻译为打补丁算法)中判断两个节点是否是相同节点,key值相同是一个必要条件。
原文链接:https://blog.csdn.net/lucky_ferry/article/details/120603378
作者:天使的翅膀
链接:http://www.qianduanheidong.com/blog/article/198123/3ec8b84070267143d41e/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!