深拷贝和浅拷贝
json.parse
会忽略 undefined;
会忽略symbol;
如果对象的属性为Function,因为JSON格式字符串不支持Function,在序列化的时候会自动删除;
诸如 Map, Set, RegExp, Date, ArrayBuffer 和其他内置类型在进行序列化时会丢失;
不支持循环引用对象的拷贝。
事件冒泡和捕获
冒泡由内向外,捕获由外到内触发
addEventListener 第三个参数为false
foreach 和map区别
同 都是用来遍历数组的
异 foreach没有返回,map返回新数组
some和every
some 有一个就为true
every 每一个都为true
暂时性死区
ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错
事件循环
- 执行同步任务, 异步任务推送到任务队列中
- 调用栈清空
- microtasks 队列依次进入执行栈执行,直到清空
// ui 线程渲染 - macrotask取出一个宏任务并执行
- microtasks 队列依次进入执行栈执行,直到清空
onchange 和 oninput
onchange event 所有主要浏览器都支持;
onchange 属性可以使用于:<input>, <select>, 和 <textarea>。
oninput 事件在用户输入时触发,它是在元素值发生变化时立即触发;
该事件在 <input> 或 <textarea> 元素的值发生改变时触发。
缺陷:从脚本中修改值不会触发事件。从浏览器下拉提示框里选取值时不会触发。IE9 以下不支持,所以IE9以下可用onpropertychange 事件代替。
网友评论