js
文章平均质量分 77
lse717
这个作者很懒,什么都没留下…
展开
-
js对象深拷贝方法,解决等号赋值后一个对象中的对象改变时另一个对象的对象也随着改变的方法!
js深拷贝方法:对象深拷贝,等号赋值后一个对象中的对象改变时另一个对象的对象也随着先来一段代码看看我们的问题:var obj1={ name:'lisi', age:{ width:1, height:2, }}var obj2={};for(var key in obj1){ obj2[key]=obj1[key];}obj1.age.width++; obj1.name='tom'console.log(obj1==obj2原创 2020-12-29 17:29:21 · 1430 阅读 · 2 评论 -
如何处理HTML5新标签的浏览器兼容问题???
html5有哪些新特性、移除了哪些元素?如何处理HTML5新标签的浏览器兼容问题?1、新特性语义化标签:article、footer、section、header、nav视频和音频:video、audiocanvas画布:图形容器、必须使用js脚本来绘制图形2、移除的元素<basefont> 默认字体<font> 字体标签<center> 水平居中<u> 下划线3、处理html5新标签与浏览器兼容性问题:(1原创 2020-11-16 10:08:07 · 1980 阅读 · 0 评论 -
怎么访问对象数组属性,并且获取某个属性的最大值以及这个属性的对象
js对对象数组进行排序和获取属性中的最大值以及这个属性的对象var users=[{ id:1, name:'lisi', age:20, gender:'men', date:new Date('2020-10-1').getTime() },{ id:5, name:'tom', age:20, gender:'men', date:new Date('2020-4-6').getTime() },{原创 2020-11-10 10:30:22 · 2008 阅读 · 2 评论 -
什么是闭包,闭包内存泄漏怎么解决?
1、什么是闭包?闭包就是一个函数,能够访问其他函数内部变量的函数,保护变量不被内存回收机制回收,避免全局变量被污染。闭包示例代码:function foo(){ var i=0; return function(){ //这个就是一个闭包函数 console.log(i++); //变量不会被内存回收机制回收 }}var f1=foo(), f2=foo(); f1(); // 0f1(); // 1f2(); //原创 2020-11-06 14:53:16 · 2144 阅读 · 0 评论 -
重绘和回流的区别
1、回流:元素的大小或者位置发生改变(当页面布局发生改变的时候),触发了重新布局导致渲染树重新计算布局和渲染如添加或删除可见的DOM元素;元素的位置发生变化;元素的尺寸发生变化、内容发生变化(如文本变化或图片被另一个不同尺寸的图片所代替);页面一开始渲染的时候(无法避免); 因为回流是根据视口大小来计算元素的位置和大小的,所以浏览器窗口尺寸变化也会引起回流2、重绘:只改变自身样式,不会影响到其他元素元素样式的改变(但宽高、大小、位置不变)eg: visibility、color、原创 2020-11-04 10:23:26 · 10017 阅读 · 0 评论 -
jquery事件嵌套出现的问题怎么去解决???
jquery事件嵌套出现的问题怎么去解决???前言 –引入问题在开发过程中我们总会不经意间把一个事件嵌套到另一个事件中,其实这是很危险的,BUG会一个接一个的来,而且如果你不了解事件嵌套与绑定的原理,那么就很难发现问题的所在之处,因为按照正常思维来说,这是可行的,而且程序逻辑不会有什么问题。那么到底是什么导致了事件嵌套出现了问题呢?事件嵌套与绑定先来一个简单的程序模型来认识一下事件的嵌套和绑定:<script> $('Btn1').click(function () {原创 2020-11-02 20:59:44 · 367 阅读 · 0 评论 -
常用的数组Api(方法)
不改变原数组1、join()方法——把数组中的所有元素放入一个字符串把数组中的所有元素放入一个字符串: join()——默认每个元素中之间是逗号隔开 join("-")——每个元素之间以 - 隔开 var arr=[1,2,3]; var str=arr.join();//默认是逗号,也可以自定义连接符 console.log(str); //1,2,3 console.log(arr); //[1,2,3]运行结果:2、concat()方法——数组拼接..原创 2020-10-30 14:05:39 · 2695 阅读 · 0 评论 -
两个数组如何合并,并去除重复元素
需求:将数组arr1和数组arr2合并,并去除重复元素第一步:使用concat()方法进行数组合并 var arr1=[1,2,3] var arr2=[2,3,4] console.log(arr1.concat(arr2)) //[1,2,3,2,3,4]第二步:然后用set()方法数组去重 var a=new Set(arr1.concat(arr2)) console.log(a) //set集合默认从小到大排序第三步:将set集合转换为数组原创 2020-10-28 20:56:48 · 5527 阅读 · 0 评论 -
两个数组如何去除相同的元素,并组成一个新数组
需求:两个数组做比较,在ary01里把含有ary02的元素删掉,组成新的数组ary03// 数组去重 let arr01=[1,2,3] let arr02=[2,3,4] let newArr=[] // 遍历两个数组,并判断数值是否相等,如果相等,就将空字符串赋值给该数值 for(var i=0;i<arr01.length;i++){ for(var j=0;j<arr02.lengt原创 2020-10-28 11:28:55 · 3856 阅读 · 0 评论 -
JavaScript基础知识
JS基础知识1.变量声明方式var 变量可以重复声明 变量声明能够被提升 没有局部作用域 eg: function foo(){ if(true){ var a="hello" } console.log(a) function foo1(){ console.log(a) } foo1() // hello } foo() // hello //函数内部的变量不允许在外原创 2020-09-16 15:16:21 · 78 阅读 · 0 评论 -
js中实现阶乘(多种方法)以及阶乘求和
JS实现阶乘的三种方法for循环while循环do-while循环for循环var str="for循环实现10的阶乘";document.write("<h1>"+str+"</h1>"); var s=0; for(var n=1;n<=10;n++){ function sum(n){ if(n<=1){ return 1 }else{ /*return n*原创 2020-08-31 22:29:08 · 23640 阅读 · 0 评论 -
js中如何监听一个对象中属性的变化
要想监听属性的变化,首先需要通过Object.defineProperty()为需要监听的属性设置一个代理。通过改变代理的值,触发set和get的方法,在这两个方法中我们编写我们想要的操作。//Object.defineProperty()//当为obj.age赋值的时候就会调用set/get方法,达到静态age值改变的目的var obj = {name:"terry",age:1} Object.defineProperty(obj,"age",{设置age为代理 configurab原创 2020-08-31 17:21:22 · 2507 阅读 · 0 评论 -
用sort()方法来实现JS中的对象数组排序
一般的数组排序都是数值类型或者字符串类型,下面有一个数值类型数组:**数组排序调用sort()函数,function函数进行相应的排序顺序返回值为正数,代表将a向后排列,这里我是从小到大进行排序//数值类型数组排序 var arr = [3,2,11,4,22] //定义一个数组 var result=arr.sort(function(a,b){ if(a>b){ return 1; }else if(a<b){ retu原创 2020-08-24 10:52:24 · 1523 阅读 · 1 评论