LearningRecord
LearningRecord copied to clipboard
学习资料汇总、阅读记录,持续学习,每天进步一点点.🏫🏫
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶 解题思路:斐波那契数列 设跳n个台阶有f(n)种方法, 爬1个:1种 爬2个:2种 爬n个:面临两种选择: 1) 第一次爬1个,此时剩余n-1个台阶,有f(n-1)种方法 2) 第一次爬2个,此时剩余n-2个台阶,有f(n-2)种方法 ```javascript const climbStairs = (n) => { if (n
是 react-router 里实现路由跳转的链接,一般配合 使用,react-router 接管了其默认的链接跳转行为,区别于传统的页面跳转, 的“跳转”行为只会触发相匹配的 对应的页面内容更新,而不会刷新整个页面。 而 标签就是普通的超链接了,用于从当前页面跳转到 href 指向的另一个页面(非锚点情况)
```javascript Click me ``` ```javascript const input = document.getElementById('input'); const text = document.getElementById('text'); const button = document.getElementById('button'); const data = { value: '' } function defineProperty(obj, attr) { let val...
>add(1); // 1 add(1)(2); // 3 add(1)(2)(3);// 6 add(1)(2, 3); // 6 add(1, 2)(3); // 6 add(1, 2, 3); // 6 1. ```javascript function add(){ let args = [...arguments]; let...
1.参数传递方式不一样:call是需要参数按顺序传递进去,apply接受参数数组,第二个参数可以是 Array 的实例,也可以是 arguments 对象 2.第一个参数this都是指定的上下文,他可以是任何一个 JavaScript 对象 3.call比apply的性能要好,平常可以多用call, call传入参数的格式正是内部所需要的格式 [call,apply,bind的用法以及实现原理 ](https://github.com/LuoShengMen/StudyNotes/issues/28)
call实现 ```javascript Function.prototype.call2 = function (context) { context = context || window context.fn = this var args = []; for(var i = 1, len = arguments.length; i < len; i++)...
```javascript const aryMethods = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse']; const arrayAugmentations = []; aryMethods.forEach((method)=> { // 这里是原生 Array 的原型方法 let original = Array.prototype[method]; // 将 push, pop 等封装好的方法定义在对象...
Object.defineProperty无法监控到数组下标的变化,导致通过数组下标添加元素,不能实时响应; Object.defineProperty只能劫持对象的属性,从而需要对每个对象,每个属性进行遍历,如果,属性值是对象,还需要深度遍历。Proxy可以劫持整个对象,并返回一个新的对象。 [Proxy 与 Object.defineProperty的对比](https://github.com/LuoShengMen/StudyNotes/issues/455)
[Proxy 与 Object.defineProperty的对比](https://github.com/LuoShengMen/StudyNotes/issues/455)
思路: 方法一: - 首先找出整个区域最大的数值,记录位置 - 以位置为中心向左找最大的数值, 计算两个位置的容量,并更新最大值的地址,直到循环结束 - 以位置为中心向右找最大的数值,计算两个位置的容量,并更新最大值的地址,直到循环结束 ```javascript const trapRainWater = (heights) => { if (heights.length max) { max = heights[i]; maxInd = i; } } let area...