很多东西就是要细细的品读然后做点读书笔记,心理才会踏实- Javascript对象本质上就是键值对的集合(Hash结构),但是键只能是字符串,这有一定的限制. 1234 var d = {}var ele = document.bodyd[ele] = 'This is body'console.log(d['[object HTMLBodyElement]']) 上段代码的原意是将DOM节点作为对象d的键,由于对象只接受字符串,所以ele被自动转为[object HTMLBodyElement…
WeakSet和Set类似,同样是元素不重复的集合,它们的区别是WeakSet内的元素必须是对象,不能是其它类型. 特性: 1.元素必须是对象. 添加一个number类型的元素. const ws = new WeakSet() ws.add() 结果是报类型错误. TypeError: Invalid value used in weak set 添加一个对象. const ws = new WeakSet() var a = {p1:'1', p2:'2'} ws.add(a) consol…
默认值 function test(x,y='world'){ console.log('默认值'); } function test2(...arg){ for(let v of arg){ console.log("rest",v); } } test2(1,2,3,4,5,'a'); 箭头函数 let arrow =v=>v*2; console.log('arrow',arrow(3));//6 尾调用---性能优化的过程中,嵌套过多 function tail(x)…
Symbol的概念 变量是独一无二的 let a1=Symbol(); let a2=Symbol(); a1和a2严格意义不相等 let a3=Symbol.for('a3'); let a4=Symbol.for('a3'); console.log(a3===a4); 如果在对象中使用Symbol变量,就可以用Object.getOwnPropertySymbols(obj).forEach(function(tiem){ }) or Reflect.OwnKeys(obj…