JavaScript
分享JS学习过程中遇到的问题及解决方法
尤记昨日书
不更新啦,悄悄学习
展开
-
【前端小记】-- JavaScript--3.js代码的执行过程
js引擎会在执行代码之前,也就是解析代码时,会在我们的堆内存创建一个全局对象(简称GO),可以被所有作用域访问。 这个全局对象里面包含: (1)一些全局的方法和类,像Math、Date、String、Array、setTimeout等等; (2)一个指向全局对象自身的window属性; (3)我们在代码中定义的全局变量,并把值设置为undefined(其中和普通数据有所区别的是,是,我们定义的函数存放的是地址,指向函数对象); 在上文提到的代码中,第一步就是在堆内存中创建一个全局对象。 全局对象存放上述原创 2023-02-17 15:16:23 · 455 阅读 · 0 评论 -
【前端小记】-- JavaScript--2.js的内存管理机制(关于拷贝、垃圾回收、内存泄漏的问题)
首先我们需要了解js内存的生命周期,当我们创建变量、函数或其他东西时,js引擎会自动为它分配一个内存,而当它不被使用时,由于js的垃圾回收机制,js引擎会自动释放掉这块内存(是怎么回收的后续会有解释),大概流程:分配内存-->使用内存-->释放内存。原创 2023-02-13 18:01:36 · 207 阅读 · 0 评论 -
【前端小记】-- JavaScript--1.事件委托
事件委托就是不在事件的发生地(直接 dom)上设置监听函数,而是在其父元素上设置监听函数,通过事件冒泡,父元素可以监听到子元素上事件的触发,通过判断事件发生元素 DOM 的类型,来做出不同的响应。...原创 2022-08-26 10:51:29 · 377 阅读 · 0 评论 -
JavaScript-节流阀
1. 节流阀目的:防止轮播图按钮连续点击造成播放过快。当上一个函数动画内容执行完毕,再去执行下一个函数动画,让事件无法连续触发。 2. 核心实现思路:利用回调函数,添加一个变量来控制,锁住函数和解锁函数。 开始设置一个变量 var flag = true; If(flag) {flag = false; do something} 关闭水龙头 利用回调函数动画执行完毕, flag = true 打开水龙头 ...原创 2021-08-08 16:08:25 · 533 阅读 · 1 评论 -
JavaScript-判断使用终端
if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android| Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS |Symbian|Windows Phone)/i))) { window.location.href = ""; //手机 } else { window.location.hre.原创 2021-08-08 16:04:42 · 139 阅读 · 1 评论 -
JavaScript-页面被卷去的头部兼容性解决方案
声明了DTD,使用 document.documentElement.scrollTop; 新方法 window.pageYOffset 和 window.pageXOffset,IE9 开始支持; 未声明 DTD,使用 document.body.scrollTop; 注:声明DTD指 存在 <!DOCTYPEhtml> function getscroll(){ return{ left: window. Pagexoffset || document.documentE...原创 2021-08-08 16:02:19 · 220 阅读 · 0 评论 -
JavaScript-案例-倒计时
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>倒计.原创 2021-07-15 20:24:32 · 92 阅读 · 0 评论 -
JavaScript-reduce()方法
reduce() 1. reduce()是典型的函数式编程的方法,它不会改变原数组的元素,而是产生一个新的数组,几乎可以用reduce方法解决所有数组处理问题,filter和map方法都可当作是reduce的特殊实现,该方法类似于for循环,却不等同于for循环,是更加简洁的编程方式。 2. 接收两个参数:第一个参数:function(a,b) a:上一次reduce后的结果; b:原数组中...原创 2021-05-25 15:59:01 · 465 阅读 · 1 评论 -
JavaScript-map()与foeEach()的区别
1.forEach() (1)定义:对数组的每一个人元素执行一次提供的函数,对空数组不执行。 (2)用法: Arr.forEach(function(currentValue,index,arr),thisValue) (3)参数: 1)function(currentVaue,index,arr):必须,数组中每个元素所调用的函数。 currentValue:必须,当前元素; index:可...原创 2021-05-23 21:09:31 · 169 阅读 · 0 评论 -
JavaScript-函数式编程-创建数组副本
在JS的函数式编程中,为了最大程度地保证代码的后期优化,防止改变代码中的变量或对象而引起的副作用,我们需要尽可能地不改变原始变量,但是在数组中,使用类似var newArr = arrVar时arrVar是一个数组,代码只是创建一个对现有变量的引用,而不是副本。 所以更改newArr中的值会同时更改arrVar中的值,所以在有些编程里,我们需要创建数组的副本。 所谓创建数组的副本,就是把一个数组完全赋给另一个变量,二者互不干扰,最简单的方式就是使用展开运算符...原创 2021-05-13 20:25:39 · 666 阅读 · 0 评论