LearningRecord
LearningRecord copied to clipboard
学习资料汇总、阅读记录,持续学习,每天进步一点点.🏫🏫
函数式编程是关于小型编码,编写纯函数和响应式编程是大型编码,即模块之间的数据流,连接以 FP 风格编写的组件。 FRP - 功能响应式编程( Functional Reactive Programming)是另一个不同但相关的概念
使用魔性数字,如 width: 67px; 或使用 em 代替 rem 单位,在通用代码之前编写 media queries(媒体查询),滥用 ID 和类等
函数调用,方法调用,.call() 和 .apply(), 不同但是改变函数内的this指向
```javascript const findSum = (arr, val) => { let searchValues = new Set(); searchValues.add(val - arr[0]); for (let i = 1, length = arr.length; i < length; i++) { let...
事件流分为两种,捕获事件流和冒泡事件流。 捕获事件流从根节点开始执行,一直往子节点查找执行,直到查找执行到目标节点。 冒泡事件流从目标节点开始执行,一直往父节点冒泡查找执行,直到查到到根节点。 DOM事件流分为三个阶段,一个是捕获节点,一个是处于目标节点阶段,一个是冒泡阶段 ```javascript 阻止冒泡事件event.stopPropagation() function stopBubble(e) { if (e && e.stopPropagation) { // 如果提供了事件对象event 这说明不是IE浏览器 e.stopPropagation() } else { window.event.cancelBubble = true //IE方式阻止冒泡 } } 阻止默认行为event.preventDefault() function stopDefault(e)...
用 JavaScript 写一个函数,输入 int 型,返回整数逆序后的字符串。如:输入整型 1234,返回字符串“4321”。要求必须使用递归函数调用,不能用全局变量,输入函数必须只有一个参数传入,必须返回字符串。 ```javascript function fun(num){ let num1 = num / 10; let num2 = num % 10; if(num1
```javascript function changeObjProperty(o) { o.siteUrl = "http://www.baidu.com" o = new Object() o.siteUrl = "http://www.google.com" } let webSite = new Object(); changeObjProperty(webSite); console.log(webSite.siteUrl); ``` http://www.baidu.com 原因:函数的形参是值传递的,形参 o 的指向发生改变,指向堆内存中一个新的对象
在vue 中 vue 做了处理 如果我们自己在非vue 中需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委托给父节点来触发处理函数
vuex的原理其实非常简单,它为什么能实现所有的组件共享同一份数据? 因为vuex生成了一个store实例,并且把这个实例挂在了所有的组件上,所有的组件引用的都是同一个store实例。 store实例上有数据,有方法,方法改变的都是store实例上的数据。由于其他组件引用的是同样的实例,所以一个组件改变了store上的数据, 导致另一个组件上的数据也会改变,就像是一个对象的引用。 如果对vuex的实现有兴趣,可以看看我自己造的一个vue轮子对应的vuex插件。它实现了除vuex模块外的所有功能。
watch 主要作用是监听某个数据值的变化。和计算属性相比除了没有缓存,作用是一样的。 借助 watch 还可以做一些特别的事情,例如监听页面路由,当页面跳转时,我们可以做相应的权限控制,拒绝没有权限的用户访问页面。