![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Javascript
渣渣砖
这个作者很懒,什么都没留下…
展开
-
5分钟,带你实现一个map函数?
map函数用的还是相当频繁的,还是要常些常用才能更加熟练。原创 2024-03-20 15:56:53 · 238 阅读 · 0 评论 -
5分钟,带你实现一个冒泡排序?
冒泡排序主要理解它的思想:如数据交换。比较基础的排序算法思想。原创 2024-03-19 17:42:25 · 118 阅读 · 0 评论 -
5分钟,带你实现一个翻转二叉树?
翻转这棵二叉树,并返回其根节点。原创 2024-03-18 11:13:35 · 193 阅读 · 0 评论 -
5分钟,带你实现二叉树的最小深度?
二叉树是比较常见的数据结构,还是需要深度掌握的。叶子节点是指没有子节点的节点。最小深度是从根节点到最近。的最短路径上的节点数量。原创 2024-03-18 10:45:00 · 245 阅读 · 0 评论 -
5分钟,带你实现一个快速排序?
排序算法,搞代码的大佬们想必非常熟悉,快速排序又难免会用到,今天就来简单实现一个排序算法。原创 2024-03-17 12:40:45 · 73 阅读 · 0 评论 -
ES6之浅尝辄止1:class的用法
class是es6新增的一种语法糖,用于简化js中构造类的过程。原创 2023-08-27 14:05:33 · 396 阅读 · 0 评论 -
js数据类型浅析
js中如何检测一个数据的类型?原创 2023-01-20 21:04:53 · 1304 阅读 · 0 评论 -
js如何进行数组去重?
1:数组反转使用 reverse() 实现数组反转const arr = [1, 2, 3];console.log(arr); // [1, 2, 3]arr.reverse();console.log(arr); // [3, 2, 1]2:数组去重- 1 [...new Set(array)]原理:将数组通过set函数变成一个没有重复元素的集合,再将集合变成一个没有重复元素的数组 - 2 利用for嵌套for,然后splice去重(ES5中最常用)function uni.原创 2021-11-18 22:27:33 · 690 阅读 · 0 评论 -
常用数组方法总结
# 添加/删除元素- push(...items): 从结尾添加元素- pop:从结尾弹出/提取元素- unshift(...items):从开头添加元素- shift : 从开头提取元素- splice(pos, deleteCount, ...items):从index开始,删除deleteCount元素,并在当前位置插入元素;- slice(start,end): 它从所有元素的索引start开始复制到end,但是不包括end,并且返回一个新的数组;- concat(... items.原创 2021-11-18 22:20:07 · 788 阅读 · 0 评论 -
JavaScript与生俱来的特性---异步与回调
js单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。如果是因为计算量大,CPU忙不过来,倒也合乎逻辑,但是很多时候CPU是闲着的,因为IO设备(输入输出设备)很慢(比如Ajax操作从网络读取数据),于是不得不等着结果出来,再往下执行。JavaScript语言的设计者意识到,这时主线程完全可以不管IO设备,挂起处于等待中的任务,先运行排在后面的任务。等到IO设备返回了结果,再回过头,把挂起的任务继续执行下去。于是,所有.原创 2021-05-08 15:44:40 · 304 阅读 · 3 评论 -
为啥JavaScript是单线程?
思考:JavaScript语言的一大特点就是单线程。也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?若以多线程的方式操作..原创 2021-05-08 15:10:24 · 303 阅读 · 4 评论 -
什么是JavaScript解析引擎?
JS是解释型语言,所以它无需提前编译,而是由解释器实时运行。JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序。就是经常听到的js解释器,JavaScript引擎做的事情就是解析你这段代码,并给出运行结果。看过编译原理的人大概都了解,对于静态语言来说(如Java、C++、C),处理上述这些事情的叫编译器(Compiler);相应地对于JavaScript这样的动态语言则叫解释器(Interpreter)。两者的区别用一句话来概括就是:..原创 2021-05-08 14:47:48 · 697 阅读 · 0 评论 -
js的垃圾收集机制
js中的垃圾收集:标记清除和引用计数(主流是标记清除) 垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记,然后,它会去掉环境中的变量及被环境中的变量引用的变量的标记。而在此之后再被加上离开环境时标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了,最后,垃圾收集器完成内存的清除工作。销毁哪些带标记的值,并回收他们所占用的内存空间。 引用计数的含义是跟踪记录每个值被引用的次数。当一个变量引用了另一个变量的时候,则这个值就会加1,如果一个变量又赋值给了另外一个变原创 2021-05-08 12:03:29 · 126 阅读 · 0 评论 -
快速理解事件委托?
捕获和冒泡允许我们实现一种被称为事件委托的强大的事件处理模式。如果我们有许多以类似方式处理的元素,那么就不必为每个元素分配一个处理程序 —— 而是将单个处理程序放在它们的共同祖先上。示例代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edg...原创 2021-02-20 16:14:10 · 130 阅读 · 0 评论 -
3分钟搞懂js的冒泡和捕获?
为了快速理解js冒泡和捕获,我们先看代码:<!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..原创 2021-02-18 16:37:02 · 300 阅读 · 0 评论 -
30秒带你看懂js变量提升
var a = '全局变量';function s(){ console.log(a); console.log(b); var b = '局部变量';}s();猜下会输出啥?最后结果是变量全局变量和undefined.是不是和你想的不太一样.这就是js的变量提升.s函数执行时,先进行词法分析,var b;变量b的声明先被置于函数作用域的最顶部,只有当程序执行到当前语句时,才会赋值.因此按照js顺序执行的方式.会输出undefined.也可以像下面这样理...原创 2021-02-18 15:02:24 · 118 阅读 · 0 评论 -
快速理解js作用域?
js包括ECMAScript、DOM、BOM三个组成部分。ECMAScript又分为ES3、ES5、ES6、ES7、ES8、ES9、ES10、ES11这些版本,ES3版本有点老,目前主流开发基本是ES5和ES6的天下。ES5作用域:全局作用域和函数作用域。ES6作用域:除了全局作用域和函数作用域之外,新增了块级作用域。我这次主要分析ES5版本的作用域。JavaScript作用域是可访问变量的集合。在 JavaScript 中, 对象和函数同样也是变量。在 JavaScr...原创 2021-02-18 11:09:15 · 139 阅读 · 0 评论 -
js之DOM0级和DOM2级绑定事件
js原生注册事件分别为DOM0级、DOM2级DOM0级事件简单理解就是直接绑定可以是直接在标签中绑定事件<input id="btn" type="button" value="点击" onclick="alert('这是通过DOM0级添加的事件!');" >//也可以采用这种方式var oBtn = document.getElementById("btn");oBtn.onclick = function () { alert('这是通过DOM0级添加..原创 2021-02-18 10:03:02 · 766 阅读 · 0 评论 -
快速理解js中的所有事件?
鼠标事件 // 鼠标点击事件 onclick // 鼠标双击事件 ondbclick //鼠标移入 onmouseenter/onmouseover //鼠标移出 onmouseleave/onmouseout //鼠标按下 onmousedown //鼠标移动onmousemove //鼠标松开 onmouseup<!DOCTYPE html><html lang="en">&l...原创 2021-02-10 16:26:02 · 96 阅读 · 0 评论 -
快速理解js中的全局对象?
var声明的全局变量var globalVal = '全局变量';//浏览器中,全局对象一般指代windowconsole.log(globalVal === window.globalVal);//true//Node.js中,全局对象一般指代globalconsole.log(globalVal === global.globalVal);//true//日常开发时常用this指代全局对象console.log(globalVal === this.globalVal);/...原创 2021-02-10 11:29:47 · 692 阅读 · 0 评论 -
探究js函数和对象的关系(一)
1:理解什么是函数,什么是对象?函数好说,声明个function(){},即为函数,并且函数是一种对象,通过fn instanceof Object返回true 可以知道;对象是什么?对象就是一组属性或方法的集合(由于方法本质上也是属性,所以可以看成是属性的集合);function Fun(){ this.a = 1; this.b = 'y';}var obj = new Fun();明显obj就是个对象,我们可以看到对象是通过函数创建的,是的,没错;但是还..原创 2021-01-07 18:26:31 · 329 阅读 · 1 评论 -
js怎样判断引用类型和值类型?
1:typeof 输出的类型 console.log(typeof y); // undefined console.log(typeof 101); // number console.log(typeof 'hello'); // string console.log(typeof true); // boolean console.log(typeof functi原创 2021-01-07 17:33:21 · 604 阅读 · 0 评论 -
怎样监听音频播放完毕?
非常简单获取当前点击的音频的DOM元素myAudio;myAuto.addEventListener('ended',function(){myAuto.pause(); alert('播放完毕');})2:监听ended事件原创 2020-12-15 14:04:46 · 1304 阅读 · 0 评论 -
获取当前点击的DOM元素?
获取当前点击的DOM元素? function add(e){ var ele = e.target; return ele;}//获取当前点击元素的父节点e.target.parentNode//获取当前点击元素的子元素e.target.children[0]//删除当前点击元素e.target.parentNode.removeChild(ele); ...原创 2020-12-14 15:21:45 · 1652 阅读 · 0 评论 -
如何在sublime Text3实时运行js代码?
安装Node.js:https://nodejs.org/en/ 为sublime text3添加编译系统:Tools > Build System > New Build System 在打开的界面中添加{ "cmd": ["node", "$file"], "selector": "source.js" }并保存 ctrl+b...原创 2020-02-17 12:03:47 · 1090 阅读 · 3 评论 -
Express初学之入门
1:Express简介-基于Node的极简MVC框架- 提供灵活的路由功能- 提供强大的中间件机制- 内核极小、扩展性很好(使用广泛)2:路由机制Express概念:定义了Api的地址,请求、响应方式方法:天然支持HTTP Method 中的某个方法,Get/Post等3:中间件机制Express中间件:- Express应用的基本组成单元- 中间...原创 2019-04-14 16:09:39 · 1654 阅读 · 0 评论 -
js高级之对象构造模式
1》Object构造函数模式 1>套路:先创建空Object对象,在动态添加属性/方法 2>适用场景:起始时不确定对象内部数据 3>问题:语句太多<script>var p=new Object()p.name='Tom'p.age=12p.setName=funct...原创 2019-01-23 14:55:58 · 133 阅读 · 0 评论