- 博客(11)
- 收藏
- 关注
原创 JS直接赋值、浅拷贝和深拷贝的区别
首先要知道JS的数据类型分为基本数据类型(String、Number、Boolean 等)和引用数据类型(Object、Array、Function)。基本数据类型的值是直接存储在栈内存中的,而引用数据类型的引用地址保存在栈内存中,值保存在堆内存中,可以通过引用地址找到堆内存中所对应的值。看图可以更好的理解。现在有a对象,然后变量b等于a。let a = { name : 'lisi' }let b = a他们的值在内存中是这样存储的。有了对基本数据类型和引用数据在...
2021-10-05 22:14:41
1218
原创 npm install XXX 加上-s、-d、-g和什么都不加的区别
1.npm install XXX -s npm install XXX -s 相当于 npm install -S 相当于 npm install --save 这样安装是局部安装的,会写进package.json文件中的dependencie里。 dependencies: 表示生产环境下的依赖管理;说白了你安装一个库如果是用来构建你的项目的,比如echarts、element-ui,是实际在项目中起作用,就可以使用 -s 来安...
2021-09-27 22:25:24
12816
3
原创 Vue中key的作用(内部原理 )在diff算法中起到的作用,详细讲解
题外话:本人之前就想弄明白diff算法在vue哪里用到了,网上查了查都是直接讲解diff算法的深度理解和怎么实现的,而我就一开始想明白怎么用、有什么用,还不太想马上知道diff算法深度的东西。查到最后还是一头雾水,只知道了diff算法用来比较旧的虚拟DOM和新的虚拟DOM。直到我在b站自学,看张天禹老师的vue教程,听到讲解key在vue中的作用的时候,发现讲到了diff算法,然后就突然茅塞顿开,解决了以前困扰我的问题,就想着写个文章,希望可以帮助到别人,而我写的东西不会涉及到很深的原理...
2021-09-20 17:18:18
469
原创 JS防抖、节流的原理和实现过程
防抖和节流是为了处理高频率事件触发1.防抖防抖:点击后一段时间再执行,如果一直点击不会执行,等动作结束后才执行2.节流节流:会在一段时间内容只执行一次
2021-09-17 17:09:17
465
原创 牛客网JS(V8引擎)和JS(node环境)下的输入和输出
1.在V8引擎下输入、输出。 牛客网的V8引擎下,可以直接用readline()方法接收输入,而且可以接受多行的输入,readline()方法每执行一次就会识别一次输入的数据所以可以进行多行输入,这个比node环境下输入好太多了,建议遇到要输入的编程题都在v8下编程。例子如下(多行输入):let arr = readline().splice(' ');let num = readline();// 输入 // 1 2 3// 4console.log(arr); ...
2021-09-16 20:27:44
8975
6
原创 JS入口函数和jQuery入口函数的区别
JS入口函数:window.onload = function() { 要执行的代码}jQuery入口函数://完整写法:$(document).ready(function(){ 要执行的代码}); //可以简写$(function(){ 要执行的代码}); JS和jQuery入口函数,其实想解决的问题差不多,就是想在文档中的标签加载完毕后再执行js、jq代码,说白点就是想在每个HTML页面的元素创建后,在执行js、jq代码。如果不这么做会造成下
2021-09-09 16:02:11
581
1
原创 JS来实现轮播图(走马灯)可左右切换图片,鼠标移入会停止轮播
效果一:会自动进行轮播,当鼠标进入轮播图区域会停止轮播,点击左右箭头可以向前、向后进行切换图片效果二:这种效果比第一种效果简单,只要删除一些代码和修改一些样式即可。实现原理轮播图整体是放在ul里的,li里存放img图片(轮播的图片)<ul> <li> <img> </li></ul>给li元素进行绝对定位,且给每个li一个z-index值(堆叠数值,可以理解...
2021-09-07 19:23:55
16969
11
原创 JS(ES5)正则表达式(多个前瞻存在情况)进行密码匹配
现在有一个匹配问题,匹配密码,必须包含大写,小写和数字,和特殊字符(!,@,#,%,&),且大于6位。 先看明白要匹配的条件,必须包含大写、小写、数字和特殊字符,但是出现的顺序没有规定,只要包含有就行,一般的正则表达式都是按顺序来进行匹配的,所以有什么办法可以解决这个没有顺序的匹配呢,或者说有什么匹配机制可以每次匹配完,又重新从头开始进行下一次匹配呢?前瞻就可以。 ...
2021-09-01 14:46:51
427
原创 JS(ES5) 实现数组方法(迭代类型:evey、some、map、filter)的重构
重构前要理解这些方法的要干嘛、能干嘛,还有明白传入每个参数有什么用。数组调用evey、some、map、filter方法中,传入的第一个参数是回调函数(必填),第二个参数是一个对象(可填、可不填),作用是改变第一个参数里的回调函数this指向为这个对象。1.重构方法之everyArray.prototype.myEvery = function (fun, obj) { for (var i = 0; i < this.length; i++) { if (!(o
2021-08-31 11:13:16
340
原创 JS(ES5) 实现数组方法(pop、push、shift、unshift、forEach)的重构
1.重构方法之push()方法var arr = [1, 322, 44, 'wo'];Array.prototype.myPush = function () { for (var i = 0; i < arguments.length; i++) { this[this.length] = arguments[i]; } return this.length;}console.log(arr.myPush(2, 233)); // 6co.
2021-08-30 11:17:42
359
原创 JS(ES5)的数组原型方法中,会改变原数组和不改变数组的方法总结
一、JS数组方法中,会改变原数组的方法 (push、pop、shift、unshift、reverse、sort、splice)1.Array.prototype.push() 栈与队列的方法push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。 2.Array.prototype.pop() 栈与队列的方法pop() 方法用于删除数组的最后一个元素并返回删除的元素。3.Array.prototype.shift() 栈...
2021-08-30 10:59:22
3463
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人