我也不知道我现在处于个什么状态,我在以前写代码时知道部分方法如何使用,但是也仅限于此我并不了其如何实现,让我感到迷茫我是越来越菜了随着AI的发展它写出的代码简洁高效甚至让我有些看不懂,以至于我开始怀疑自己的JS基本功因此重修JS基本功,我不知道我的想法是否正确也许我从来就没真正的掌握JS这门基本功一直都是在为了实现功能而一条路走到黑,但是我希望自己深入研究JS这种状态可以保持下去20224-7-20:22:21
我记录这段内容的想法是重新学习vue2中的 双向绑定原理,但在此之前要重新复习,set,get,map等基本概念
Set概念 | 方法 |
---|---|
set不会接受重复的值,在set中NAN是永远相等,但是对象在set中永远不相等 | |
构造函数,默认就是Set函数 | Set.prototype.constructor |
返回Set实例的成员总数 | Set.protorype.size |
添加值,返回set本身 | add.(val) |
删除某个值,返回布尔值,表示是否成功 | delete.(val) |
返回一个布尔值,表示是否为set成员 | has.(val) |
清楚所有成员 | cleat.() |
将set结构转为数组结构 | const a = Array.from(set) |
Set 和数组都有各自的方法来操作元素,但这些方法并不完全相同。例如,Set 有 add、delete、has 等方法,而数组则有 push、pop、shift、unshift、splice 等方法。此外,Set 的 size 属性是一个只读属性,不能直接修改,而数组的 length 属性可以直接修改 | |
返回键名的遍历器 | keys() |
返回键值的遍历器 | values() |
返回键值对的遍历器 | keys.() |
使用函数回调函数每个成员 | ForEach() |
WeakSet | WeakSet结构与set 与set类似,也是不能加入重复的值,但是他有两个区别1.weakset成员只能是对象,而不能是其他类型的值2.weakset中对象都是弱类型引用垃圾回收机制不考虑回收 |
返回键值对的遍历器 | keys.() |
getElementsByTagName | 用于根据给定的标签名检索文档中的所有元素 |
getElementsByClassName(className) | 此方法返回文档中所有具有指定类名的元素的实时,var elements = document.getElementsByClassName(“my-class”); |
getElementById(elementId) | 此方法返回具有指定 ID 的元素。ID 应该在文档中是唯一的;var element = document.getElementById(“my-element”); |
querySelector(selector) | 此方法返回文档中匹配指定 CSS 选择器的第一个元素。如果没有找到任何匹配的元素,它将返回 null |
querySelectorAll(selector) | 此方法返回文档中匹配指定 CSS 选择器的所有元素的静态 NodeList。var elements = document.querySelectorAll(“.my-class”); |
getElementsByTagNameNS(namespaceURI, localName) | 此方法返回文档中具有指定命名空间和本地名称的所有元素的实时 HTMLCollection。 |
function defineProperty() {var _obj = {};Object.defineProperties(_obj, {a: {value: 1,writable: true,//是否能修改enumerable: true,//是否能枚举configurable:true//是否能删除},b: {value: 23}});return _obj;
}
var obj = defineProperty();
obj.a = 5;
console.log(obj);
//猜一下此时obj的值是什么?? //(1,2)
//为什么没有改变呢? 因为我们没有明确的规定Object.defineProperties()是否可写
//在a{value:1,writable:true}中添加writable为true明确这个值可以改才能进行修改
//将数据设置为可枚举enumerable:true 默认为false,
//枚举的意思就是:比如多个数据可以展开进行显示
数据劫持:vue.js采用的是数据劫持结合发布者_订阅者模式的方式,通过Object.definProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发响应的监听回调