- 博客(49)
- 收藏
- 关注
原创 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
原创 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
原创 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之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基本数据类型
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
原创 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点餐系统
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关注的人