- 博客(24)
- 收藏
- 关注
原创 call apply 模拟实现
function demo(a, b) { console.log(a); console.log(b); console.log(this.value);}Function.prototype.call1 = function(context) { context = context || {}; let self = this; let args = []; ...
2019-07-29 15:53:07
143
原创 指定一个数,打印从0到这个数指定位数最大值中间的所有数
题目的具体描述:输入数字n,按顺序打印出从0到最大的n位十进制数。比如输入3,则打印出0、1、2一直到最大的3位数999。题目思路:首先,最后一位是从0到9一直循环,知道前面所有位的数都变成9;其次,各个位从右到左都是从0增加到9。...
2019-05-21 09:39:13
208
原创 vue计算属性和methods的区别
computed(计算属性)和methods的区别使用方式:<!-- 计算属性里方法的调用 --><div id="app"> 总价: {{ prices }} <br/> test:{{ tests }}</div><!-- methods里方法的调用 --><div id="app"> 总价: {{...
2019-05-19 11:26:31
4734
原创 元素垂直居中的各种方法
html内容:<div class="app"> <div class="block"></div></div>1. 绝对定位通过与父元素的绝对定位来让自身实现垂直居中。.app { width: 500px; height: 500px; background: red; position: relative;}.bloc...
2019-05-17 08:06:10
4203
原创 Vue写一个知乎日报
说明:vue构建页面vue directive自定义事件node代理服务jsonp跨域获取知乎数据webpack打包axios请求数据使用:1.在拉下来的项目中自己添加webpack项目的node_module各种插件2.使用node proxy.js启动代理服务3.npm run start 启动项目地址:https://github.com/zhangzhimia...
2019-05-02 16:43:15
337
原创 Vue写一个答题模板组件
组件要求:传入问题id、类型、题目、选项(可不定个数选项)组件根据传入的数据自动组装成问题,每页展示一个,可选择上一个、下一个、重置或者提交地址:https://github.com/zhangzhimiao/questionnaireComponent...
2019-04-21 20:54:26
3664
5
原创 inheritAttrs和$attrs的理解
应用背景:为了更好的传递给后代组件一些属性名和属性值,但不希望所有的后代都继承这些属性名和属性值inheritAttrs就是为了设置子组件是否继承这些属性名和属性值(style和class例外)当inheritAttrs的值为true时,如下:<body> <div id="app"> <base-input required p...
2019-04-12 18:02:08
284
原创 vue通过for循环生成的checkbox点击一个选中全部的问题
重点在input的绑定属性value上,如果写成 <tr v-for="(item,index) in list"> <td> <input type="checkbox" :id="index" value="item.id" v-model="checkedItem"> </td> <td>{...
2019-04-08 21:49:58
12712
11
原创 vue实例中方法绑定的依赖值形成死循环
<div id="app"> test: {{ add() }}</div><script>var app = new Vue({ el: '#app', data: { count: 0 }, methods: { add: function(){ return this.count++; } }...
2019-04-05 09:54:14
548
原创 求最长回文字符串
最长回文串算法思路:将字符串变为数组,再将数组长度通过填充undefined变为奇数长(在字符中间以及两头插入字符串),从左往右遍历数组,每个字符都用朴素计算法,即判断与字符距离相同的两个字符是否相同,相同则计数器加一,往两侧遍历,直到数组边界或者两侧的符号不同位置。最后遍历存半径长度的数组,找到半径长度最长的字符的位置以及半径长度,通过计算找到源字符串的最长回文串。var longestPa...
2019-03-31 10:44:52
139
原创 面经系列-2
面试官面试一般都会对着简历上写的东西来面,他会根据他认为的你的亮点,然后对你进行这方面的提问这次面试面试官问的算法是给定一棵二叉树,给定一个值,在二叉树中找一条路径,使路径上数字的和等于给定的值,如果存在和等于给定值的路径,则返回true,否则返回false。计算机网络很重要!计算机网络很重要!计算机网络很重要!面试官问了TCP三次握手原理总结:这次面试其实不难,主要是自己对代码已经生...
2019-03-25 19:59:41
124
原创 面经系列-1
面试官一般会问简历上你写的熟悉的部分,所以尽量不要给自己留坑把自己埋了一面我是前端面试,所以面试官问了css样式权重,没搞清,跟我记得的不一样,答的一般,后来问了自己h5做的动画,问帧代表的意思问了TCP三次握手原理,为什么是三次不是两次也不是四次(计算机网络很重要,尤其tcp、ip)问了项目经验,在项目中学到的东西正则表达式匹配汉字优化浏览器加载速度的方法保护网络数据传输的措...
2019-03-25 19:56:56
147
原创 寻找两个有序数组的中位数
思路:将两个数组排序,然后判断数组长度,长度为单数,则取二分之一处的数,否则取二分之一处和二分之一减一处的数之和除以2.var findMedianSortedArrays = function(nums1, nums2) { var arr = merge(nums1,nums2); if(arr.length == 1){ return arr[0]; ...
2019-03-23 09:42:17
176
原创 归并排序
思想:分治法,将数组不断从中间分开。归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置第三步:比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针超出序列尾将另一序列剩下的所有元素直接复制到合并序列尾为了保证归并的两个数组为排...
2019-03-21 07:40:49
111
原创 字符串转整数
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被...
2019-03-19 21:38:52
118
原创 快速排序-js
基本思想:分治法,先在数组中将第一个数设置为key,然后用**两个指针从两边(low,high) **遍历数组,要求low小于high,low指向值大于等于key则暂停,high指向值小于key则暂停,当两个指针都停下时,如果low指向值小于high指向值,则它们指向的数换位,然后继续遍历,否则比较key与high指向的值,当key小于high指向的值并且high大于key所在的下标的值,那么指针...
2019-03-19 20:12:02
163
原创 二叉树找是否存在路径,此路径上数的和等于给定值
问题描述:给定一棵二叉树以及一个key,要求在二叉树上找一条路径,这条路径必须从根节点出发,并且路径上所有数的和等于key的值解题思路:深度优点遍历二叉树,减治法,题目并不要求返回路径以及必须到达叶节点,所以考虑比较key与每个节点的值,如果该节点的值大于key,那么这个节点往下的路径不存在符合要求的路径;如果该节点值等于key,那么返回true;如果小于key,那么将key赋值为key减去...
2019-03-18 21:08:19
1377
原创 插入排序
基本思想:插入排序的思想就是往排好序的数组中插入数字,遍历数组的时候可以认为已经遍历过的部分是有序的,未遍历的部分是待插入的,这样,遍历到的每个元素就是要插入的元素,该元素与其前一个元素比较,符合排序规则则继续判断下一个,否则换位,判断再前一个元素与其是否符合规则,知道找到符合规则的位置,然后插入其原来位置下一个元素,方法跟之前的一样从第一个数开始,前面没有数,那么它就是排好序的,到第二个数的时...
2019-03-18 13:41:45
126
原创 js数据类型判断
js类型识别1.对于基本类型以及函数:typeof用法: typeof(val)var a = 'Nich'; //stringvar b = true; //booleanvar c = 12; //numbervar d; //undefinedvar e = null; //objectvar f = {}; //objectvar g = function(){...
2019-03-17 13:22:11
244
原创 选择排序
基本思想:遍历数组,每次遍历完可以找到数组剩下范围的最大(或最小)数,将其放到自己对应的位置,n次遍历以后,所有数都找到自己的位置(n指数组长度)function insertSort(arr){ let length = arr.length; for(let i = 0; i &amp;amp;amp;amp;lt; length; i++){ let max = arr[0]; //最大数的值 let in...
2019-03-17 09:35:17
131
原创 冒泡排序
改进过的冒泡排序,如果一次遍历之后没有变换位置,则说明该数组已经是排好序的,直接返回,否则,继续遍历数组var arr1 = [1,2,3,4,5,6,7,8]; var arr2 = [5,3,6,8,2,2,6,9,1,0]; function bubbleSort(arr){ let tag = true;//标记判断一次遍历是否有数进行换位 for(let i = 0...
2019-03-17 09:05:56
122
原创 H5新特性Canvas绘制二叉树(原生js)
1.css内容*{ /*初始化,不建议用,建议参考阿里初始化css内容*/ margin: 0; padding: 0;}html,body{ height: 100%; overflow: hidden;}.btn{ position: absolute; top: 49%; left: 10%; width: 50px; background: gray;...
2019-03-10 20:16:01
1444
原创 浏览器Array不改变原数组方法原理及实现
不改变原数组1.concat///连接两个数组,返回新的数组Array.prototype.concat = function(){ var newArr = []; for(var i = 0; i &amp;amp;amp;lt; this.length; i++){ newArr[newArr.length] = this[i]; } for(var i = 0;...
2019-03-10 19:23:46
450
原创 浏览器Array改变原数组方法原理及实现
改变原数组1.push()往数组末尾添加元素,可一次添加多个Array.prototype.push = function(){ for(var i = 0; i &amp;amp;amp;lt; arguments.length; i++){ this[this.length] = arguments[i]; } return this.length;}2.pop()移...
2019-03-10 19:18:54
398
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人