- 博客(11)
- 收藏
- 关注
原创 lc3.无重复字符的最长子串
/** * @param {string} s * @return {number} */var lengthOfLongestSubstring = function(str) { if (str.length === 0) return 0 let set = new Set(), len = str.length, res = 0 for (let left = 0, right = 0; right < len;) { .
2022-01-20 10:43:28
246
原创 lc429.N叉树的层序遍历
/** * // Definition for a Node. * function Node(val,children) { * this.val = val; * this.children = children; * }; *//** * @param {Node|null} root * @return {number[][]} */var levelOrder = function(root) { if (root == null) { return .
2022-01-18 22:26:32
520
原创 Restful API
url参数URL 参数是追加到 URL 上的一个名称/值对。参数以问号 (?) 开始并采用 name=value 的格式。如果存在多个 URL 参数,则参数之间用一个 (&) 符隔开Restful API设计尽量不用url参数用HTTP方法表示操作类型(使用post delete put/patch get做增删改查),充分利用HTTP方法的语义怎样做到尽量不使用url参数?传统API设计:/api/list?pageIndex=2Restful API设计:/api/list/2
2022-01-18 22:18:06
392
原创 箭头函数中this的指向
这是coderwhy出的一道习题,我截取了习题中箭头函数的部分出来var name = 'window'var person1 = { name: 'person1', foo2: () => console.log(this.name), foo4: function () { return () => { console.log(this.name) } }}var person2 = { name: 'person2' }person
2022-01-17 16:29:54
598
原创 集合与映射中的弱引用
有序和无序Object的key-value的排列是无序的,增删改查较快Array的index-value的排列必须是有序的,增删改查较快Map和Object的区别API不同,Map可以为任意类型的key(Object只能以字符串为key)Map是有序结构(最重要)Map的增删改查同样很快(跟Object差不多快,比有序的数组快很多)Set和Array的区别API不同Set元素不能重复Set是无序结构,操作很快WeakMap和WeakSet弱引用,防止内存泄漏WeakM
2022-01-16 15:27:06
185
原创 Generator
ES6 新引入了 Generator 函数,可以通过 yield 关键字,把函数的执行流挂起,为改变执行流程提供了可能,从而为异步编程提供解决方案。Generator 有两个区分于普通函数的部分:在 function 后面,函数名之前有个 *函数内部有 yield 表达式基本使用function * foo() { console.log('t1')}// 函数调用会返回一个遍历器对象const ga = foo()此时,执行node generator.js,得不到任何结果
2022-01-16 15:25:35
174
原创 lc106.从中序与后序遍历序列构造二叉树
/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } *//** * @pa.
2022-01-03 20:09:18
176
原创 剑指Offer26.树的子结构
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @param {TreeNode} A * @param {TreeNode} B * @return {boolean} */var isSubStructure = function(A, B) { .
2021-12-27 11:13:32
3127
原创 lc98.验证二叉搜索树
/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } *//** * @pa.
2021-12-26 16:42:29
304
原创 lc131.分割回文串
/** * @param {string} s * @return {string[][]} */var partition = function(str) { let res = [], path = [] backtrace(0) return res function backtrace(start){ if (start >= str.length) { res.push(Array.from(path)) .
2021-12-22 12:50:28
197
原创 class中this的指向
基本原则class的本质是function。它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法类中定义的方法,都放在了类的原型上,供实例对象调用类中可以直接写赋值语句,写一个a = 1,就是给实例对象添加一个属性,名为a,值为1构造器中的this是 类的实例对象class Student { study () { console.log(this) }}通过Student实例对象调用study方法时,study中的this就是Student实例对象
2021-12-14 20:30:54
1393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人