笔记-JavaScript
文章平均质量分 65
javaScript笔记
妍思码匠
代码如诗,我以匠心编织,每行皆是思考的痕迹,期待与你共赏技术的魅力。
展开
-
js之设计模式
设计模式是针对面向对象开发的一种问题解决方案。目的是以后开发的过程中,面对某些业务场景,可以顺利采用合适的设计模式,使代码更低耦合,易维护。常见的设计模式有单例模式、工厂模式、策略模式、代理模式、中介者模式、装饰者模式等。原创 2023-07-25 11:32:38 · 102 阅读 · 0 评论 -
js之算法
算法是如何解决一类问题的明确规范。算法有大致分为排序类、搜索类、集合操作类、字符串操作类、数学类、树、图、和一些其他的分类比如判断回文算法等等。通常学习算法都会先学习排序类的冒泡排序算法,因为入门简单,但是从运行时间的角度看,这个算法效率比较底下,后面主要了解一些常用的算法。原创 2023-06-12 14:08:34 · 45 阅读 · 0 评论 -
js之数据结构
综合实际情况,访问数据更多可以用数据结构,操作数据(插入删除)更多,可以用链表js同样可以通过用object设置current、next等引用属性值,来模拟实现一个链表。原创 2023-06-02 13:55:58 · 158 阅读 · 0 评论 -
encodeURI和encodeURIComponent编码
在url跳转的时候,传参可能会有一些中文,因此就涉及到对url进行编码,接受放进行解码。encodeURIComponent不编码的字符有71个。encodeURI不编码的字符有82个。也就是说encodeURL不会处理。二者都对一些特殊字符不进行编码,原创 2023-05-23 14:20:53 · 1754 阅读 · 0 评论 -
BOM操作汇总
Brower Object Model浏览器对象模型,它提供了很多内置对象,用于js访问浏览器的功能。原创 2023-05-23 14:02:50 · 58 阅读 · 0 评论 -
DOM操作汇总
Document Object Model文档对象模型,是w3c指定的标准(所有浏览器的厂商都要按照这个规范实现),专门用来操作网页内容的API。原创 2023-05-23 10:49:06 · 925 阅读 · 0 评论 -
callee和caller
arguments参数是一个类数组的对象,他保存了函数的参数。同时,他还有一个属性callee这个属性是一个指针,指向拥有当前arguments对象的函数本身。原创 2023-05-22 11:18:58 · 45 阅读 · 0 评论 -
Proxy对象和Reflect对象
((Reflect.apply、set、get、has、defineProperty等)),可以直接再控制台输入Reflect查看。,外界对对象的访问,都必须先通过这层拦截,因此提供一种机制,可以对外界的访问进行过滤和改写。ES6新增了Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“(也就是说,不管Proxy怎么修改默认行为,总能在Reflect上获取默认行为)配合Proxy对象,让Proxy对象有的方法在Reflect对象上都能找到。1,将Object对象的。原创 2023-05-22 10:52:28 · 38 阅读 · 0 评论 -
Generator函数与async、await
状态机封装了多个内部状态promise对象的解释器迭代器返回一个遍历器对象,这个对象有个方法内部分段执行返回后面的值声明星号valuedonevalue为yeild关键字的返回值,done为当前Generator函数是否已完成1,声明时函数名称前面使用星号*2,函数内部使用yield关键字添加每个阶段的状态,并返回表达式后面的值3,外部调用Generator函数返回的迭代器对象的next()方法继续执行到函数内部的下一个状态,同时返回一个由value和done组成的对象。原创 2023-05-19 17:34:02 · 196 阅读 · 0 评论 -
Promise对象
赛跑,与all方法类似,不同的是,他的promise数组中的所有promise任务以最快一个执行完的为准。原创 2023-05-19 11:28:51 · 43 阅读 · 0 评论 -
解构赋值的理解
ES6新增的特性,主要是将数据结构分成更小部分的过程。原创 2023-05-18 17:31:21 · 41 阅读 · 0 评论 -
扩展运算符的用法
扩展运算符...可以理解为rest参数的逆运算,将数组或字符串拆分成字符串。原创 2023-05-18 17:07:30 · 46 阅读 · 0 评论 -
Set与Map集合
set是一个值的集合,类似于数组。但是他与数组不同的是,他的值是唯一的。Set类也提供了一些有用的方法。原创 2023-05-18 15:44:29 · 36 阅读 · 0 评论 -
break、continue和return
break只能出现在语句块中。使用break会终止当前语句中break后面的代码。但不会影响当前语句外的代码执行。原创 2023-05-18 13:29:27 · 41 阅读 · 0 评论 -
ES6函数的扩展
ES6为形参添加了默认值,如果没有传入实参,则实参取默认值。原创 2023-05-18 13:57:00 · 34 阅读 · 0 评论 -
Error异常对象
StntaxError - 语法错误TypeError- 类型错误ReferenceError - 引用错误,读取不存在的变量RangeError - 数字超出合法范围URIError - 以错误的方式使用URl的编码和解码方法其他详情查看APIMDNhttps://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Error原创 2023-05-18 11:37:04 · 47 阅读 · 0 评论 -
String字符串对象的常用方法
与substring不同的是,他接受负的参数,即从后向前。原创 2023-05-18 11:02:47 · 129 阅读 · 0 评论 -
Number对象的常用方法
parseIntparseFloattoFixed(n)转换后为字符串类型以指定的精度格式化当前值的字符串形式n的取值范围为1~100(相当于num + '')原创 2023-05-18 10:16:15 · 124 阅读 · 0 评论 -
Math对象的常用方法
如果参数不是数值类型,会先使用Number转换成数值类型。原创 2023-05-17 16:03:32 · 187 阅读 · 0 评论 -
Date日期对象的常用方法
毫秒getDay一周中的第几天0表示周天。原创 2023-05-17 11:25:04 · 331 阅读 · 0 评论 -
Array数组对象的常用方法
pushpopunshiftshifthowmany为删除多少个]删除://即从索引2开始,删除5个元素// 即从0开始,相当于清空数组增加:arr.splice(2, 0, '张三')//在索引2的位置,删除0个元素,添加一个元素'张三'修改:arr.splice(2, 1, '李四');//原理即为替换,删除一个增加一个便实现修改。原创 2023-05-16 13:55:28 · 343 阅读 · 0 评论 -
Object内置对象的常用方法
其他详细方法,可查看API。原创 2023-05-17 10:44:34 · 90 阅读 · 0 评论 -
函数的arguments参数
他是一个类数组的集合(类似数组,但不是数组,通过索引调用(eg:arguments[1]))不管我们是否设置了形参,或者是否传递了实参,arguments参数都一直存在。ES6的箭头函数中没有arguments参数。他是函数中所有实参的集合。原创 2023-05-15 10:53:39 · 70 阅读 · 0 评论 -
事件循环与事件流
js从最初设计就是单线程语言。单线程就意味着不存在异步,只能从上而下的执行代码。js在同一时间只能执行一段代码,如果代码阻塞,就得一直等下去。因此事件循环(EventLoop)让js拥有了异步的能力。原创 2023-05-15 09:46:32 · 63 阅读 · 0 评论 -
了解执行上下文
在js,js的引擎会做一些(例如变量、函数预声明、this赋值),这个准备阶段就称为执行上下文。原创 2023-05-11 14:31:29 · 56 阅读 · 0 评论 -
深入了解this
this是指当前函数执行的主体(并非上下文),也就是谁把函数执行的,this就指向谁。this的指向是在函数被执行调用的噬魂确定的,而不是在定义的时候确定。原创 2023-05-11 13:46:49 · 41 阅读 · 0 评论 -
js的类和继承
每个对象都是属性的集合,但是他们都是独立的。想让一部分对象共有一些属性,就可以使用类去定义。js中的类是基于原型继承机制的。原创 2023-05-10 15:00:04 · 260 阅读 · 0 评论 -
原型与原型链
js中的对象分为两类:普通对象、函数对象。原创 2023-05-09 16:38:35 · 44 阅读 · 0 评论 -
数据类型与堆栈内存
undefined表示一个值被声明了,但没有赋值当一个函数没有返回值时,返回的就是undefined。原创 2023-04-27 14:10:55 · 98 阅读 · 0 评论 -
变量与函数的声明提升
ES5将变量分为两种类型,全局变量和局部变量(私有变量)、自由变量。:在局部作用域中没用被声明,但是引用的变量(因此他可能是局部变量,也可能是全局变量)原创 2023-04-24 09:50:41 · 166 阅读 · 0 评论 -
防抖和节流
二者都是闭包的一种应用场景。原创 2023-04-23 13:44:51 · 46 阅读 · 0 评论 -
秒懂-闭包
简单理解:闭包就是一个可以访问其他函数作用域中变量的函数。从机制理解:每个函数都有一个私有的执行上下文,它是在函数调用的时候被创建。这些私有的上下文保存了它的一些私有信息,而且理论上它会在执行完之后被v8引擎销毁,但是由于某些原因(比如当前的上下文中还引用了其他上下文中的变量),当前私有上下文一直处于活跃状态,导致v8引擎无法销毁,一直保存在内存中。这样的上下文,就是闭包。这种上下文中的保存和保护机制,就是闭包机制。原创 2023-04-21 16:46:06 · 49 阅读 · 0 评论 -
作用域与作用域链
作用域链scopeChain的形成:作用域链是在函数执行的时候形成的。他包括当前函数的作用域[[scope]]当前执行的上下文EC,以此来建立的一个链式关系概念:在查找一个变量的时候,先从当前 作用域scope/上下文EC 中查找,如果没有查找到,就会到上级 作用域scope/上下文EC 中查找,直到全局作用域/上下文EC(G),这样查找的过程形成的链条就是作用域链scopeChain上级作用域:函数的上级作用域在哪创建的,它上级作用域就是谁(也就是当前上下文的上层上下文)查找机制详解。原创 2023-04-20 15:19:10 · 130 阅读 · 0 评论