自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 vue 2条件和循环语句

v-ifv-else-ifv-elsev-for="value in

2021-06-22 19:45:49 194

原创 js 对象和方法

https://www.cnblogs.com/sunidol/p/11463600.htmlObjectdefinePropertyObject.defineProperty(obj, "age", { value:"forever 18", enumerable:false });getOwnPorpertyNames,不可枚举也可以遍历出来,返回数组,元素是字符let obj=[5,55,555]Object.getOwnPropertyNames(obj)//["0", "1",

2021-06-22 15:55:38 103

原创 Vue 1模板语法

更多细节https://blog.csdn.net/IT_CREATE/article/details/106578844v-cloakvue.js解析时会将原本的v-cloak属性去除v-pre不处理{{message}}message:'<div></div>'v-text='message'v-html='message'属性绑定v-bind:title='message'补充class属性绑定规则:对象式v-bind:class='{'cla

2021-06-22 15:15:16 106

原创 leetcode 3中等 无重复字符的最长子串

双指针注意下面的位置 max = Math.max((i-start+1),max)delete是从前往后找不能忘记添加set.add(s.charAt(i))/** * @param {string} s * @return {number} */var lengthOfLongestSubstring = function(s) { let set = new Set() let max = 0 let len = s.length let s

2021-06-22 11:14:15 83

原创 js Set

1 Set()接受一个数组,Set会自动去重2 add()接受一个参数3 has()4 …set5 set.size6 set.add(NaN)const s = new Set(); [2,3,5,4,5,2,2].forEach(x => s.add(x));// Set结构不会添加重复的值 for(let i of s) { console.log(i);} // ## 初始化// 例一 可以接受一个数组作为参数const set = new Set([1

2021-06-22 08:55:15 61

原创 leetcode 2链表数字相加

自己写的很丑通过了。丑的原因是主要下面两块没想到,可以记下来用于链表的初始化和迭代 let head = null, tail = null; if (!head) { head = tail = new ListNode(sum % 10); } else { tail.next = new ListNode(sum % 10); tail = tail.next;var addTwoNumbers =

2021-06-21 21:39:51 152 1

原创 中间件 json

name不加引号依然可以运行参考:https://blog.csdn.net/weixin_41764042/article/details/113029145键加不加引号都是一样的。加引号的必要性是键名不规范,而且访问必通过[]来访问。<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head>

2021-06-21 09:24:14 128

原创 剑指 47礼物的最大价值

遇到“最,遍历,选择”,关键字 ,优先想到动态规划var maxValue = function(grid) { let dp=[]; dp[0]=[] dp[0][0]=grid[0][0] let m = grid.length let n = grid[0].length for (let i=1;i<m;i++){ dp[i]=[] dp[i][0] = grid[i][0]+dp[i-1.

2021-06-17 11:28:43 57

原创 剑指 62二叉树的公共祖先

利用二叉树的性质,var lowestCommonAncestor = function(root, p, q) { //二叉搜索树 if (root==null){ return null } if(p.val<root.val&&q.val<root.val){ return lowestCommonAncestor(root.left,p,q) } else if(p.val>root.

2021-06-16 11:00:10 57

原创 剑指 55-2 平衡二叉树

var isBalanced = function(root) { if(!root){return true} return defs(root) !== -1};// 计算树的深度var defs = function(node) { if(!node) { return 0 } // 计算左子树深度 const left = defs(node.left) // 计算右子树深度 const right =

2021-06-15 10:58:30 63

原创 剑指 37序列化和反序列化

仍然是广度优先遍历重构仍然需要队列。var serialize = function(root) { if(root==null){ return '[]' } let que = [] que.push(root) let res = [] res.push(root.val) while(que.length){ let temp = que.shift() // temp.va

2021-06-13 22:35:49 130 1

原创 剑指 34 返回路径之和为某个值得路径

精髓:1前序遍历解决很多问题2 数组结合使用pop()可以使得,数组包含路径(从树的根节点开始往下一直到叶节点所经过的节点形成的一条路径)的元素var pathSum = function(root, target) { if (root == null) return []; let resArr=[] let resItem=[] let sum = 0 function foo(node,temp){ resItem.push(.

2021-06-13 16:54:52 54

原创 剑指 32-3z字形打印二叉树

var levelOrder = function(root) { if (root ==null){ return [] } let res = [] let resItem = [] let stack2 =[root] let stack1 = [] while(stack1.length!==0||stack2.length!==0){ while(stack2.length){

2021-06-08 22:18:21 82

原创 剑指 32广度优先遍历二叉树

精髓:构建队列,父弹出后必须将左右子节点push进去,每次遍历队列的头即可。var levelOrder = function(root) { let res = [] let queue = [] queue.push(root) if(root===null){ return [] } while(queue.length){ let node = queue.shift() //console.log(node

2021-06-08 16:21:01 54

原创 剑指offer55 求二叉树的深度

剑指offer55求二叉树的深度精髓:1.知道递归的方式,树的遍历顺序,这里是前序遍历2.这里的递归没有返回值,只有递没有归。更简单3.将当前执行函数的值传递给下一次递归的函数var maxDepth = function(root) { //let res = []; let maxRows =0;function sum(root,rows){ if (root==null) return sum(root.left,rows+1) sum

2021-06-08 15:08:20 52

原创 JS 变量提升

函数声明和变量声明1.函数声明和他定义的内容是一体化的,他两一起被提升到最前面并且是优先于变量声明的。var b = 5function a(){ alert(4)}相当于function a(){ alert(4)}var b b = 52.函数式声明当做普通变量声明来看3.var的声明一个变量时,var 会被提升到最前端,如果多次声明了名字相同的变量,会被合为一个包括function声明的函数。 var foo = 6 var foo = 7//var foo/

2021-06-07 17:26:16 65

原创 网络请求相关

request ajax axiosawait asnyc promise

2021-06-07 13:28:58 50

原创 vue 事件

<div v-bind:click.native.stop = "add(5)">+5</div>事件修饰符stop:阻止冒泡,Q:是不会触发父元素的事件,是不会触发浮在它表面的元素事件?A:如果浮在上面无法点击下面的元素prevent:阻止默认事件self.prevent是自身点击无效。self:只能由自己触发,@不能有其他元素触发,指的是子元素?A:如果浮在上面无法点击下面的元素div包含很多小的div,可以为每个小的div添加stop,效果和父元素添加s

2021-06-07 11:45:54 46

原创 62 圆圈最后的数字

用数组代替循环链表0 1 2 3 4 m=3 res = 3依次删除 2 0 4 1 ,最后为3精髓1 m-1若m为3 则删除的第3个数字 ,为当前位置+2,当前位置start是第一个数字。2 start = (start+(m-1))%arr.lengthfunction foo(n,m) { let arr = []; for (let i=0;i<n;i++){ arr.push(i); } let sta

2021-06-06 12:41:03 86

原创 64 1+2+3+...n不能用循环语句和乘法除法以及三元运算符?:

var sumNums = function(n) { return n && n + sumNums(n - 1); };//+ 优先级大于 && console.log(sumNums(5));

2021-06-06 12:34:37 75

原创 js bind

bind function sum(a,b,c) { return a-b+c } let sum1 = sum.bind(null,1,3) console.log(sum1(6));//6 let sum2 = sum.bind(null,1) console.log(sum1(6,3));//6

2021-06-05 16:24:26 78

原创 数据结构与算法 之链表

0 引言构造链表链表的操作双向链表的操作比较两种链表1构造链表

2021-06-03 16:57:53 88 1

原创 CSS animation

<!DOCTYPE html><html><head><style> div { width: 100px; height: 100px; background-color: green; animation-name: example; animation-duration: 10s; animation-iteration-count:4; }@keyframes example { from {backgro

2021-06-01 20:16:25 66

原创 js 拷贝深拷贝浅拷贝

1浅拷贝2 深拷贝Q:堆是如何存一个对象的?代码function deepclone(obj){ // let cloneObj = typeof obj === ' let cloneObj = Array.isArray(obj) ?[]:{}; if (obj[key] && typeof obj[key] === "object") { for(let k in obj) { if (obj[k]

2021-06-01 18:41:59 58

原创 js 正则表达式

1. reg的用法涉到函数和正则表达式的规则。1正则的规则正则表达式就是字符串的集合:用正则方法时,可以这么认为。https://regexper.com/用字符串方法,正则作为参数时,正则被认为是一个标记。且一般情况下不用到^,$。?=?!元字符var str="123\\\4o\"5\"67oo"; var n=str.search(/\\/); document.getElementById("demo").innerHTML=n+str; //3123\@o"5"67oo

2021-06-01 15:59:20 92

原创 js 柯里化,偏函数

柯里化https://segmentfault.com/a/1190000018180159柯里化函数的精髓利用了以下几点函数的参数接受多余的参数,多余的可以被arguments接受,arguments是一个伪数组。[].slice.call(arguments);[]只要是数组即可,eg[12,9],aruments是类数组。依据arguments,返回一个真正的数组function curry(cb) { return function(x){ return f

2021-05-31 16:33:47 118

原创 js 异步 线程 并行 进程 事件循环 并发

9

2021-05-30 17:07:48 194

原创 js之promise

1promise手撕还是有点困难先掌握它的方法,在记得它的规范,从规范出发手xPromise1 then promiseconst promise2 = new Promise((resolve, reject) => { setTimeout(()=>{ console.log(1) resolve(3) console.log(2) }) }) promise2.then((res) => { conso

2021-05-30 16:59:40 84

原创 CSS BFC

参考https://blog.csdn.net/sinat_36422236/article/details/88763187补充:同一个bfc 父子元素也会发生margin-top重叠

2021-05-28 21:34:57 47

原创 js promise

1promise2 then3 catch4 all5 race

2021-05-28 16:53:42 49

原创 js基本数据类型

1undefined和nullnull == nullundefined == undefinednull == undefinedtypeof null == 'object'以上为true2numberNaN var a = 1+'a' let b = 1-'a' let c = 'a'-1 let d = 'a'+1 console.log(typeof a);//string console.log(b);//NaN consol

2021-05-28 16:01:35 41

原创 js对象实例的相关方法

class People { constructor(name) { this.name = name, this.car = 'benz' this.sing = function(){} console.log('singing'); } //外部的eat相对于手动继承写 People.prototype.eat=function(){} eat() { console.log('eat somethin

2021-05-28 15:24:42 74

原创 javascript class

class的函数eat相当于手动继承写 People.prototype.eat()改变People.prototype.eat(),会改变内部的class内部的eatsuper(name)相当于手动继承方式中的People.prototype.constructor.call(this,name) class People { constructor(name) { this.name = name } //class的函数eat相当于手动继承写 People.p

2021-05-28 15:17:54 110 1

原创 javascript中 3章原生函数

0引言String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol()附 typeof instanceof toStringtypeof 返回 7个数据类型-1,(除了typeof null返回“object”),返回值的类型是字符串typeof symbol toString Object.prototype.tostring.call()let a = null //c

2021-05-28 14:50:52 135 1

原创 javascript import

routes0.js文件import menu from 。。。export const routes = {}index.js文件import {routes} from './roures0'//不需要加'.js'Q:index.js中可以访问menu?

2021-05-27 20:54:35 63

原创 浏览器相关函数

浏览器是多线程的,有哪些经常在js代码中写却又不知道是浏览器的函数setTimeoutalert()confirm()

2021-05-27 20:28:48 197

原创 vue vue-router学习

1vue-router中传参params和query如何同时使用params和query:导航组件中::to="{path:“menu/”+stuNum,query:{key:‘age’}"路由中:routes=[{path:‘menu/id’,component:menu},]menu组件中:打印this$route

2021-05-27 17:40:51 116

原创 vue事件难点

.prevent.capture.passive

2021-05-26 21:14:38 63

原创 防抖函数和节流函数的原理应用场景

1 debounce

2021-05-26 12:40:38 148

原创 vue点餐系统

1 脚手架安装npm install -g vue-clivue init webpack-simple pizzaApp//简易版的启动npm install 安装所有模块7个组件组件名一般大写Home.vueHeader.vueAbout文件夹//涉及多级路由Admin.vueLogin.vueRegister.vueMenu.vue1搭建导航页面所有组件共用一个导航页面bootstrap的css链接拷贝到title下 ?...

2021-05-25 21:45:54 889

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除