![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ESMAScript
文章平均质量分 60
ESMAScript
youhebuke225
这个作者很懒,什么都没留下…
展开
-
ES知识目录
基础运算符优先级 点击ES5ES5详解 点击JSON.parse 点击ES6对象的扩展可选链 点击正则表达式正则表达式入门 点击原创 2022-04-29 22:26:36 · 336 阅读 · 0 评论 -
js打印出堆栈
在JavaScript中,直接获取并打印完整的调用堆栈(stack trace)并不像在一些其他语言中那样直接。不过,有几种方法可以实现类似的功能,具体取决于你的需求和运行环境(如浏览器环境或Node.js环境)。原创 2024-07-09 14:05:43 · 252 阅读 · 0 评论 -
获取当前的域名与端口
这个函数首先尝试获取整个主机名(包括端口,如果非默认)。然后,它检查端口是否为默认的HTTP或HTTPS端口。如果不是,则直接返回整个主机名(包括端口)。如果是,则只返回主机名部分。对象来获取当前页面的URL,并从中提取域名和端口。但是,请注意,如果端口是默认的(例如,HTTP的80或HTTPS的443),则URL中可能不包含端口号。包含完整的URL,但在这个例子中我们主要使用。在JavaScript中,你可以使用。来获取主机名和端口(如果非默认)。则直接提供端口号(如果非默认)。原创 2024-06-22 14:58:17 · 263 阅读 · 1 评论 -
JS将小数转化为整数
这些函数不直接进行类型转换,但它们在处理数字时很有用,可以将浮点数四舍五入到最接近的整数。如果你有一个字符串并希望将其转换为整数,你需要先使用上述方法之一将其转换为数字。可以用于将值转换为数字,但它对于字符串到整数的转换并不总是那么直接,因为它会尝试解析整个字符串为一个数字,包括任何小数部分。函数解析一个字符串参数,并返回一个指定基数的整数(基数介于2和36之间)。如果操作数是一个字符串,那么它会尝试解析该字符串为一个数字。主要用于将字符串解析为浮点数,但它也会返回一个整数值,如果该值没有小数部分。原创 2024-05-29 09:28:04 · 338 阅读 · 0 评论 -
JS判断元素是否在数组中
在JavaScript中,有多种方法可以用来判断一个元素是否存在于数组中。原创 2024-04-24 13:24:27 · 735 阅读 · 1 评论 -
JS位运算
计算机对于二进制数据的运算就叫做为运算,即将一个整数的二进制格式进行运算,先转化为二进制数,然后进行运算十进制转化为二进制工具点击写法为表达式1 & 表达式2参加运算的两个数据,按二进制位进行“与”运算两位同时为“1”,结果才为“1”,否则为0,就是将两个整数的每一个二进制位进行比较,如果都为1,结果才为1,其余情况全部为0;原创 2023-04-19 09:19:10 · 455 阅读 · 0 评论 -
ES2020之BigInt
因为他是基本的数据类型,目前没有完整的兼容库来支持无法兼容的浏览器。我们会发现BigInt进行运算最终得到的都是整数,比如。字符串,他可以和字符串之间进行 + 号操作。数据类型只在一下浏览器支持。,他支持的是向下取整。原创 2023-02-02 09:16:50 · 493 阅读 · 0 评论 -
ES2020之按需导入
一般我们使用import函数来进行按需导入,他接收一个字符串作为模块标识符,返回一个promise他可以在任何支持该语法的平台使用,比如webpack,node,浏览器环境等。原创 2023-01-04 09:31:45 · 163 阅读 · 0 评论 -
ES2020之globalThis
全局对象,比如我们使用浏览器的时候全局对象为window,在web worker中是self,在node中是global一般我们想要拿到全局对象可以使用一下代码'))()但是这一段代码受到安全策略的限制,所以这段代码在chrome相关的app中无法运行成功所以es6-shim只能穷举所有的全局属性,如下};if(!}通过上面属性来获取到全局对象,但是每一次用到还是很麻烦,所以就会有了globalThis这个属性。原创 2023-01-03 09:43:39 · 203 阅读 · 0 评论 -
ES2020之Promise.allSettled
在Promise对象上面一共提供了很多组合方法供我们使用,他们都接受多个promise对象,然后返回一个表示组合结果的新的promise,依据传入的promise的结果状态,返回的新的promise切换为不同的状态。原创 2023-01-02 18:12:31 · 184 阅读 · 0 评论 -
ECMAScript 2021 (es2020)
专栏目录请。原创 2022-11-14 09:10:52 · 273 阅读 · 0 评论 -
ES2022(ES13)简介
专栏目录请。原创 2022-11-08 09:17:11 · 259 阅读 · 0 评论 -
对象属性的监测
一般,当我们对于属性属性进行监测的时候常用的关键字和方法有in,目前还有一个新的方案将要纳入标准,就是,他主要是用来代替。原创 2022-10-26 09:28:15 · 248 阅读 · 0 评论 -
js数组的at方法
如果发现我们当前的浏览器不支持at方法,那么,我们可以使用profill。原创 2022-09-27 09:33:13 · 1650 阅读 · 0 评论 -
js之空值判断
在一些多条件判断的时候,我们除了用。来连接条件之外,还可以使用。相当于对于一组条件的判断。原创 2022-09-15 13:34:54 · 1268 阅读 · 0 评论 -
一段时间后执行剩下的js代码
time.sleep。原创 2022-09-12 14:33:10 · 275 阅读 · 0 评论 -
js的toString方法
自定义函数会得到函数的源码内置函数会有的字符串}https。原创 2022-07-31 10:55:06 · 446 阅读 · 0 评论 -
script之type=module
importscript。原创 2022-07-22 14:18:56 · 10685 阅读 · 0 评论 -
js运算符优先级问题
!FORM_DATA(‘is_rest’) && FORM().field_metas.type_id.options.originObject.name===‘加点’https://www.cnblogs.com/yy-hh/p/4624792.html原创 2022-02-19 14:06:00 · 487 阅读 · 0 评论 -
js之JSON.parse
JSON.parse一般用于将JSON字符串转化为JSON对象语法JSON.parse(text[, reviver])text 要被解析成 JavaScript 值的字符串reviver 转换器, 如果传入该参数(函数),可以用来修改解析生成的原始值,调用时机在 parse 函数返回之前一般第二个参数为回调函数,用于在返回结果之前,操作一些东西实例注意当传入reviver参数的时候,遍历到顶层的时候的key是一个空字符串,所以一般会遍历到空字符串的时候将返回原值const res原创 2022-02-17 14:46:03 · 10323 阅读 · 0 评论 -
ES2020之可选链——?.
前提可选链,也就是?.与??操作符,他实质上也是一种语法糖,通俗来讲就是 对象.属性1?.属性2??默认值,如果有对象的属性1,那么就继续读取属性2,如果没有则返回默认值。就就相当于一个三元运算符他一般适用于嵌套对象的读取,链式的安全读取,详细可以参考 MDN,可以用于对象数组函数例子const obj = { a:1}我们如果直接读取对象中没有的属性,他就会直接报错console.log(obj.b.c)// Uncaught TypeError: Cannot read原创 2021-11-29 13:50:16 · 547 阅读 · 0 评论 -
项目中用setTimeout代替setInterval
为什么要用setTimeout代替setInterval博客参考 点击,需要注意的是这两个定时器并不是定时执行,一般会延后一点点,秒数所表示的是,在一定时间后,被放入到队列中setInterval的缺陷使用 setInterval某些间隔会被跳过不执行当使用 setInterval时,仅当队列中没有该定时器的任何其他代码时,才会将定时器代码加入到队列中可以这么理解:每个setTimeout产生的任务会直接push到任务队列中;而setInterval在每次把任务push到任务队列前,都要进原创 2021-06-14 22:46:23 · 1049 阅读 · 4 评论 -
Math与Date对象详解
脑图目录1 Math对象1.1 Math常用属性1.1.1 Math.PI1.2 Math常用方法1.2.1 [abs(x)](https://www.w3school.com.cn/jsref/jsref_abs.asp)1.2.2 [random()](https://www.w3school.com.cn/jsref/jsref_random.asp)1.2.3 取整向下取整向上取整四舍五入1.2.4 最值 [max(x,y)](https://www.w3school.com.cn/jsr原创 2020-07-15 14:36:25 · 288 阅读 · 0 评论 -
JS数组详解
1 声明方式1.1 构造函数主要使用new Array来新建一个数组1.1.1 新建一个空数组直接调用new Array不传递参数var arr = new Array()console.log(arr) // []// 动态的添加元素arr[1]= 1console.log(arr) // [empty, 1]1.1.2 新建一个有元素的数组在构造函数中传递数组元素/* 直接在构造函数中传递相应的数组元素 */var arr = new Array("SunWuKong原创 2020-07-14 19:32:51 · 213 阅读 · 1 评论 -
正则表达式详解
1 创建正则表达式用来对字符串做匹配,提取,替换的等的处理操作1.1 构造函数使用 new RegExp('正则表达式','匹配模式')来创建一个正则表达式,其中匹配模式包括i忽略大小写g全局匹配,并不是在找到第一个后停下m:多行匹配实例const str = "Hello World,hello better life"var reg = new RegExp("hello","gi") // 注意都是字符串console.log(str.match(reg)) // ["H原创 2020-07-14 00:55:22 · 989 阅读 · 0 评论 -
ES5详解
目录1 严格模式1.1 使用1.2 严格模式的作用1.3 严格模式的规定2 JSON2.1 **`JSON.parse`**2.2 `JSON.stringify`3 对象扩展3.1 Object.create3.2 Object.defineProperties3.3 对象本身的方法3.4 Object.keys4 数组扩展4.1 indexof/lastIndexOf4.2 forEach4.3 map4.4 filter5 函数扩展1 严格模式1.1 使用在JS文件的头部或者函数的原创 2020-07-13 01:32:51 · 3732 阅读 · 0 评论 -
JS对象详解
脑图1 创建模式1.1 字面量使用{}创建对象,并指定属性和方法const person = { name:"Jerry", age:18}对象内部的数据是确定的,但是要创建多个对象的话,有重复 代码1.2 构造函数模式使用Object()构造函数const person = new Object() // 相当于 const person = {}person.name = "Jerry"person.age = 18person.sayName =原创 2020-07-12 15:43:47 · 447 阅读 · 0 评论 -
JS函数详解(二)
1 作用域与作用与链1.1 分类全局作用域:定义在全局,所有的变量都能访问到局部作用域:定义在函数体内,只有函数内的语句才能访问到块级作用域:是ES6之后出现的,使用 const 和 let ,会使{}形成一个封闭的作用域1.2 概念形象的比喻作用域,可以拿学校来做比喻全局作用域:就相当于整个学校,定义在全局作用于中的变量,就如同学校通过广播站传递的信息,所有的代码(学生),都能看到局部作用域和块级作用域,去们就相当于一个个的教室,在教室中发布的消息,只有教室中的学生能看到var原创 2020-07-11 18:42:11 · 303 阅读 · 0 评论 -
ES6块级作用域详解
1 概念一个块级作用域也就是一对{},花括号在ES5和ES6中还是有些区别的2 ES5在ES5中,花括号起到的作用是分类和分组的作用例题1if(false) console.log('1')console.log('2')console.log('3')输出我们会发现离if条件句最近的一句没有执行例题2if(false){ console.log('4') console.log('5') console.log('6')}一句都没有执行原创 2020-07-10 17:34:51 · 406 阅读 · 0 评论 -
JS函数详解(一)
脑图这里写目录标题1 创建1.1 函数声明1.2 函数表达式1.3 构造函数2 调用2.1 语法2.2 参数3 构造函数3.1 简介3.2 构造函数的执行流程3.3 构造函数与普通函数的区别4 arguments4.1 `callee`的使用5 构造函数与ES6 class5.1 对于构造函数优化5.2 类的使用5.3 类的说明6 原型与原型链6.1 原型对象6.2 原型对象的使用6.3 原型的分类6.4 原型链6.4.1 instanceof 的使用6.4.2 原型链图解6.4.3 总结对于原型链的总原创 2020-07-10 01:08:15 · 265 阅读 · 0 评论 -
小白都能看明白的JS函数中的this
脑图1 核心本质上所有函数的调用都是通过某个对象调用的。即使我们通过函数直接调用,它也是通过window进行调用的,只不过window可以省略所有函数内部都有一个变量this,调用的方式不同,它就不同。就如同变色龙,靠近不同的物体,自身的颜色就会变成物体的颜色谁调用的函数,函数内部的this就是谁// 我们定义在全局的函数,相当于把函数定义在了window对象上function aTest(){ console.log(this) // window console.log('he原创 2020-07-08 12:14:39 · 195 阅读 · 0 评论 -
JS中的类型转化(强制类型转换与隐式类型转换)
强制类型转换以下的数据类型转换都属于全局函数1.1 parseInt():解析一个字符串,并返回一个整数第一个参数:要解析的字符串非数字返回NaN第二个参数:以多少进制解析字符串不传递第二个参数,以字符串本身来解析1-9 开头的数字以十进制解析0x 开头以十六进制解析️0 开头八进制或者十六进制parseInt("10"); //返回 10parseInt("19",10); //返回 19 (10+9)parseInt("11",2); //返回 3 .原创 2020-07-06 22:30:46 · 833 阅读 · 0 评论 -
H5 Web Worker 使用
API我们只需要记住三个API就可以了new Worker()创建一个worker对象postMessage(data)向主线程发送数据onmessage=fun(event),监听发送的分线程发送的数据,通过event.data取出使用使JS创建斐波那契数列什么是斐波那契数列例如下面这一列数1,1,2,3,5,8…//第一个数 + 第二个数 = 第三个数,有这样一个规律的一列数,就叫做斐波那契数列使用JS写斐波那契数列/* 斐波那契数列实际上是一个递归调用的函数,n原创 2020-06-24 00:27:58 · 759 阅读 · 0 评论 -
浏览器的事件驱动模型
原理图对于原理图的说明原理图可以分为三部分JS引擎(主线程)栈内存:相当于执行上下文栈(执行上下文对象并非一个真的对象),里面保存的是局部变量出现如图所示的情况是因为嵌套的内部函数没有调用堆内存:保存的都是对象WebAPI(分线程)事件管理模块:主要管理相应的回调函数,将回调函数放入回调队列(浏览器)DOM事件管理模块定时器事件管理模块ajax事件管理模块callback queue保存待处理的回调函数使用原理图解释定时器众所周知,J原创 2020-06-22 21:33:01 · 427 阅读 · 1 评论 -
伪数组如何使用数组的方法
概念什么是伪数组也叫做类数组具有length属性,lenght-1,代表着有元素无法调用数组的方法const vArr = { 0:'zero', 1:'one', 2:'two', length:3}/* 同时,vArr1也是一个伪数组,0-3为我们可以认为他是undefined */const vArr1 = { 4:'four', 5:'five', length:6}伪数组如何调用数组的方法想要伪数组使用数组的方法,我们可以把伪数组转化为数组,这里介绍几原创 2020-06-18 14:40:21 · 1499 阅读 · 0 评论 -
小白都能看明白的bind,apply,call的区别
目录bind,apply,call的区别1. `apply/call`2. `bind`bind,apply,call的区别函数体中有this用来指定函数中的this是谁1. apply/callbind/call 两者是差不多的区别在于,两者的参数不同参数一:需要绑定的this其他参数:call直接传递参数apply传递参数的数组const name = 'Jack'function fn (a,b){ console.log(name,a,b) console原创 2020-06-11 12:55:11 · 316 阅读 · 0 评论 -
什么是闭包以及如何使用浏览器查看闭包
什么是闭包以及如何使用浏览器查看闭包1. 概念我们记住两点就可以了嵌套的内部函数引用了外部的变量、原因因为变量被内部资源占用,而JS的垃圾回收机制不会回收内部函数所占的资源导致变量一致存在于内存中2. 使用浏览器查看闭包闭包我们根据上面的代码来写一个闭包function wrapper(){ const name = 'wrapper' function inner(){ console.log(name) }}wrapper()打开浏览器,点击S原创 2020-06-04 12:26:39 · 1784 阅读 · 0 评论 -
回调函数的分类
回调函数的分类回调函数可以分为同步回调函数异步回调函数同步回调函数什么是同步的回调函数呢简单的来说就是将这个函数回调函数执行完后,在去执行下面的代码 const arr = [1,2,3] arr.forEach(item => { console.log(item) }) console.log('这时在forEach之后打印的字符传')forEach中的参数是一个典型的同步回调回调函数,按我们的分析应该是等他遍历完元素之后再去打印,我们看看结果的确是原创 2020-05-30 14:30:23 · 389 阅读 · 0 评论 -
函数的节流和防抖总结
目录函数的节流和防抖函数节流函数防抖函数的节流和防抖函数防抖和节流,都是控制事件触发频率的方法函数节流:throttle,一定的时间间隔就会执行一次函数防抖:debounce,多次连续触发后只执行一次我们以鼠标移动事件为例,我们在一个盒子上移动,盒子内部显示鼠标的坐标css.box{ width: 500px; height: 500px; border: 1px solid black; text-align: center; line-height: 500px;}ht原创 2020-05-30 11:30:35 · 194 阅读 · 0 评论 -
ES6中Object.assign()与深拷贝浅拷贝
ES6中Object.assign()与深拷贝浅拷贝1. 浅拷贝1.1 什么是浅拷贝?拷贝出来的目标对象的指针和源对象的指针指向的内存空间是同一块同一块空间让几个对象共用一个内存1.2 Object.assign()实现浅拷贝参数参数一:目标对象,拷贝后返回的对象其他参数:源对象,需要拷贝到目标对象的对象const target = {a:1}const object1 = {b:2}const object2 = {c:3}console.log(Object.assign原创 2020-05-27 11:15:27 · 1443 阅读 · 0 评论