- 博客(20)
- 收藏
- 关注

原创 JavaScript基础知识汇总
乱七八糟的,有知识点,有小技巧。想到什么写什么,目的加深印象(持续更新)快速将多维数组转换成一维数组,并排序const arr = [[1, 2, 4, 7], [3, 5, 8, 11], [6, 9, 12, 14], [10, 13, 15, 16]]// ES6arr.flat().sort((a, b) => {return a - b});// ES5arr.toSt...
2019-11-22 17:30:28
113
原创 使用whistle实现移动网页(H5、公众号、企微应用)的本地开发及调试
使用whistle实现移动网页(H5、公众号、企微应用)的本地开发及调试
2022-10-12 11:02:59
1226
1
原创 new 运算符详解
当使用 new 运算符执行一个函数时,称为构造函数执行模式,返回一个实例对象,而函数体中的this指向这个实例如何实现?创建一个对象将对象原型指向构造函数的原型将this指向这个对象返回这个对象// 实现 newfunction fakeNew(){ const obj = {} // 获取构造函数 const _constructor = [].shift.call(arguments) // 改变原型指向 obj.__proto__ = _constructor.prot.
2021-04-27 14:49:20
476
原创 基础面试题分析
1let a = { n: 1}// 声明变量 a,开辟堆内存AAAFFFF0000 存储键值对 n: 1,将内存地址赋值给 a,将变量 a 与 堆内存关联let b = a // AAAFFFF0000// a.x = b 这种写法会造成堆的无限嵌套,引发内存溢出 // 声明变量 b,与 堆内存关联a.x = a = { n: 2}// (1) 拆分为 a.x = { n: 2 } 、 a = { n: 2 }// (2) 此时 a.x 的 a 仍然关联旧的堆内存地址 AAAFFF
2021-04-22 16:34:42
130
原创 Vue常见问题
1.响应式数据原理默认vue在初始化数据时,会给data中的所有属性使用Object.defineProperty重新定义,当页面取到相应属性时,会进行依赖收集(Watcher),如果属性发生变化,就会通知相关依赖进行更新操作/initData 初始化用户传入的data数据创建Observer对数据进行观察defineReactive 循环对象属性定义响应式变化Object.de...
2020-04-05 11:28:21
279
原创 盒模型
CSS 传统盒模型content => width & heightmarginpaddingborder盒子宽度 => content + 左右padding + 左右borderCSS3 新盒模型box-sizing: content-box; (默认值,传统盒模型)box-sizing: border-box; (新盒模型)设置border-box...
2020-03-13 11:09:40
80
原创 Math数学函数
Math 数学函数数学函数:但它不是一个函数,它是一个对象,存储了很多操作数字的属性和方法 ,因此也称作数学函数常用属性和方法对于非数字会先使用Number转换为数字类型,再进行处理Math.abs([number val]); 获取绝对值(绝对值永远是正数或0)Math.ceil / floor([number val) 把一个数向上或向下取整Math.round([num...
2020-03-12 14:05:20
209
原创 JS基础Number类型详解
parseInt([val])\parseFloat([val])遵循从左到右的顺序查找有效字符,如果[val]不是字符串,则会先转成字符串再查找Number([val]) 、isNaN([val])遵循C++机制只要出现任何一个非有效数字,都是NaN,[val]为null/空字符串/false都为0isNaN(null); // falseparseIn(null); NaNNumb...
2020-03-12 10:40:57
224
原创 ES6变量和常量
ES6增加了 let 和 const 来进行赋值区别varvar 可重复声明var 没有块级作用域var 可无限制修改/// 重复声明var a = 2;var a = 3;console.log(a) /// 3/// 无块级作用域if (true) { var b = 5;}console.log(b); /// 5/// 可无限制修改var c = 'str...
2020-03-11 10:53:50
188
原创 前端面试题
1、列举常用浏览器,及内核常用浏览器有Chrome,FireFox,Safari,IE内核有Trident,Gecko,Presto,Webkit最常用2、浏览器如何渲染网页(1)遍历DOM节点,构建DOM树(2)解析CSS文件生成CSS规则树(3)渲染树布局,从根节点开始遍历,输出盒子模型。(4)渲染树绘制,浏览器遍历渲染树,调用渲染器的paint()方法在屏幕上显示其内容,渲染树...
2020-01-13 15:29:08
133
原创 日常划水
06:00该起床了,唉,还是有点困。抓紧起来锻练会儿,50个俯卧撑 + 压腿。洗漱、蹲坑、抓紧时间煎个鸡蛋,吃早饭咯07:10出发赶地铁哟,今儿人可真多,等一趟车再上吧。哎,好不容易有个座位,两边儿还都是胖子。也算可以了,至少不用站着沙河站的人乌央一大片,真挤,坐着也憋屈08:00到达西二旗,换13号线,还行,有座位看会儿视频到站换公交车,还好,终于到了,9点...
2019-12-10 17:14:06
929
原创 算法-排序
冒泡排序冒泡排序比较任何相邻的两个元素,如果第一个比第二个大,则交换他们,元素向上移动至正确的位置,像冒泡一样,因此而得名。复杂度O(n2)function List(){ // 辅助函数,交换元素位置 function swap(id1, id2) { const aux = arr[id1]; arr[id1] = arr[id2]; arr[id2] = aux; ...
2019-11-28 13:40:56
111
原创 正则表达式常用元字符
字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符^表示语句的开头$表示语句的结尾*匹配前面的字符零次或多次,例: zo*可以匹配 ‘z’ 、‘zoo’,等同于{0, }+匹配前面的字符一次或多次,例: zo*可以匹配 ‘zo’ 、‘zoo’, 不能匹配 ‘z’,等同于{1, }?匹配前面的字...
2019-11-26 16:01:18
425
原创 script元素
<script>标签是向HTML页面中插入js的主要方法。属性定义src表示包含要执行的外部js文件defer立即加载,但延迟执行,HTML5规范中要求按照出现的顺序执行,但在现实当中,延迟脚本并不一定会按照顺序执行,也不一定会在DomContentLoaded事件出发后运行,因此建议只包含一个延迟脚本。async异步加载,不会阻塞文档的呈现。会...
2019-11-22 11:13:43
110
原创 算法学习-求斐波那契数列的第N项
1.普通版递归function fibonacci1(n) { if (n <= 2) return 1; return fibonacci1(n - 1) + fibonacci1(n - 2);}console.log(fibonacci1(20)) // 6765简单易懂,缺点就是当n比较大时,会出现栈溢出,导致浏览器假死2.优化版递归function fibo...
2019-11-21 15:20:58
242
原创 js 继承
对象冒充原理构造函数使用this关键字给所有属性和方法赋值(即采用类生命的构造函数方式)。因为构造函数只是一个函数,所以可以使classA构造函数成为classB的方法,然后调用它。classB就会收到classA中定义的属性和方法。function classA(sColor) { this.color = sColor; this.sayColor = function() { ...
2019-11-20 11:01:02
95
原创 git初涉
git 版本控制首先创建一个分支hotfix,用于修改紧急bug。git branch hotfix // 创建一个分支git branchhotfix*master // *号为当前分支原有的master用来开发迭代功能。hotfix修改后,要及时提交,之后切换master分支,继续开发新功能。git checkout hotfixgit commit -a git push...
2019-11-19 14:46:57
131
原创 扩展运算符...
ES6扩展运算符 …扩展运算符用于取出参数对象中的所有可遍历属性,拷贝到当前对象中。如果将扩展运算符用于数组赋值,只能放在最后一位,否则会报错。扩展运算符对对象的拷贝属于浅拷贝,实际在拷贝的时候,拷贝的是对象的引用,当原对象发生变化,拷贝的对象也会跟着变化。let obj = {a: 1, b: 2};let obj2 = {...obj}obj2.b = 3// obj = {a: 1...
2019-11-18 09:55:53
220
原创 数组学习 1
.mapmap方法对数组的所有成员依次调用一个函数,根据函数结果返回一个新数组。map方法接受一个函数作为参数。该函数调用时,map方法会将其传入三个参数,分别是当前成员、当前位置和数组本身。根据遍历执行的匿名函数,对于原数组中的每个值产生一个对应的值,并返回一个新的数组,存在一个映射关系,并且不会改变原数组,不会对空数组进行检测。var numbers = [1, 2, 3];number...
2019-11-15 16:11:19
131
原创 神奇的 ::v-deep
神奇的 ::v-deep深度作用选择器之前在项目中用到了 vant,使用特别简单,而且组建也非常的丰富。即时这样,在项目中肯定也需要用额外的样式来打造自己的应用。直接在 <style lang="scss" scoped> .... </style> 中编写的话只会影响当前组件内的样式,但如果去掉scoped话又会影响全局样式。想了好多方法,都没得到很好的解决。百度之后...
2019-11-14 15:51:57
29606
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人