ESMAScript
文章平均质量分 60
ESMAScript
youhebuke225
这个作者很懒,什么都没留下…
展开
-
ES知识目录
基础运算符优先级 点击ES5ES5详解 点击JSON.parse 点击ES6对象的扩展可选链 点击正则表达式正则表达式入门 点击原创 2022-04-29 22:26:36 · 344 阅读 · 0 评论 -
ES6 URL对象
URL对象提供了一种强大的方式来解析和操作URL,而对象则专注于处理查询字符串。这些对象使得处理URL变得更加简单和直观,非常适合用于需要动态生成或解析URL的应用场景。如果您正在开发一个需要频繁处理URL的Web应用,掌握这些API是非常有用的。原创 2024-09-03 17:48:13 · 657 阅读 · 0 评论 -
js刷新当前页面并添加路由参数
要在JavaScript中刷新当前页面并添加参数到URL中,可以使用或者方法来构造新的URL。原创 2024-09-03 17:40:57 · 551 阅读 · 0 评论 -
浏览器发送通知
在浏览器中显示通知通常依赖于Web Notifications API,这是一个浏览器提供的API,允许网页在不需要用户与页面进行交互的情况下发送通知。原创 2024-08-28 14:58:51 · 293 阅读 · 0 评论 -
js判断两个对象是否相等
通常不会得到你期望的结果,因为这些操作符比较的是对象的引用(即它们在内存中的位置),而不是它们的值或内容。因此,如果两个对象具有相同的属性名和属性值,但它们不是同一个对象实例,直接使用这些操作符会认为它们不相等。要判断两个对象是否相等(即它们包含相同的属性名和属性值),你需要自己实现一个函数来比较这两个对象的所有属性。在JavaScript中,直接比较两个对象(使用。原创 2024-08-19 11:17:56 · 275 阅读 · 0 评论 -
js打印出堆栈
在JavaScript中,直接获取并打印完整的调用堆栈(stack trace)并不像在一些其他语言中那样直接。不过,有几种方法可以实现类似的功能,具体取决于你的需求和运行环境(如浏览器环境或Node.js环境)。原创 2024-07-09 14:05:43 · 458 阅读 · 0 评论 -
获取当前的域名与端口
这个函数首先尝试获取整个主机名(包括端口,如果非默认)。然后,它检查端口是否为默认的HTTP或HTTPS端口。如果不是,则直接返回整个主机名(包括端口)。如果是,则只返回主机名部分。对象来获取当前页面的URL,并从中提取域名和端口。但是,请注意,如果端口是默认的(例如,HTTP的80或HTTPS的443),则URL中可能不包含端口号。包含完整的URL,但在这个例子中我们主要使用。在JavaScript中,你可以使用。来获取主机名和端口(如果非默认)。则直接提供端口号(如果非默认)。原创 2024-06-22 14:58:17 · 486 阅读 · 1 评论 -
JS将小数转化为整数
这些函数不直接进行类型转换,但它们在处理数字时很有用,可以将浮点数四舍五入到最接近的整数。如果你有一个字符串并希望将其转换为整数,你需要先使用上述方法之一将其转换为数字。可以用于将值转换为数字,但它对于字符串到整数的转换并不总是那么直接,因为它会尝试解析整个字符串为一个数字,包括任何小数部分。函数解析一个字符串参数,并返回一个指定基数的整数(基数介于2和36之间)。如果操作数是一个字符串,那么它会尝试解析该字符串为一个数字。主要用于将字符串解析为浮点数,但它也会返回一个整数值,如果该值没有小数部分。原创 2024-05-29 09:28:04 · 533 阅读 · 0 评论 -
JS判断元素是否在数组中
在JavaScript中,有多种方法可以用来判断一个元素是否存在于数组中。原创 2024-04-24 13:24:27 · 1361 阅读 · 1 评论 -
JS位运算
计算机对于二进制数据的运算就叫做为运算,即将一个整数的二进制格式进行运算,先转化为二进制数,然后进行运算十进制转化为二进制工具点击写法为表达式1 & 表达式2参加运算的两个数据,按二进制位进行“与”运算两位同时为“1”,结果才为“1”,否则为0,就是将两个整数的每一个二进制位进行比较,如果都为1,结果才为1,其余情况全部为0;原创 2023-04-19 09:19:10 · 464 阅读 · 0 评论 -
ES2020之BigInt
因为他是基本的数据类型,目前没有完整的兼容库来支持无法兼容的浏览器。我们会发现BigInt进行运算最终得到的都是整数,比如。字符串,他可以和字符串之间进行 + 号操作。数据类型只在一下浏览器支持。,他支持的是向下取整。原创 2023-02-02 09:16:50 · 512 阅读 · 0 评论 -
ES2020之按需导入
一般我们使用import函数来进行按需导入,他接收一个字符串作为模块标识符,返回一个promise他可以在任何支持该语法的平台使用,比如webpack,node,浏览器环境等。原创 2023-01-04 09:31:45 · 172 阅读 · 0 评论 -
ES2020之globalThis
全局对象,比如我们使用浏览器的时候全局对象为window,在web worker中是self,在node中是global一般我们想要拿到全局对象可以使用一下代码'))()但是这一段代码受到安全策略的限制,所以这段代码在chrome相关的app中无法运行成功所以es6-shim只能穷举所有的全局属性,如下};if(!}通过上面属性来获取到全局对象,但是每一次用到还是很麻烦,所以就会有了globalThis这个属性。原创 2023-01-03 09:43:39 · 218 阅读 · 0 评论 -
ES2020之Promise.allSettled
在Promise对象上面一共提供了很多组合方法供我们使用,他们都接受多个promise对象,然后返回一个表示组合结果的新的promise,依据传入的promise的结果状态,返回的新的promise切换为不同的状态。原创 2023-01-02 18:12:31 · 192 阅读 · 0 评论 -
ECMAScript 2021 (es2020)
专栏目录请。原创 2022-11-14 09:10:52 · 286 阅读 · 0 评论 -
ES2022(ES13)简介
专栏目录请。原创 2022-11-08 09:17:11 · 276 阅读 · 0 评论 -
对象属性的监测
一般,当我们对于属性属性进行监测的时候常用的关键字和方法有in,目前还有一个新的方案将要纳入标准,就是,他主要是用来代替。原创 2022-10-26 09:28:15 · 262 阅读 · 0 评论 -
js数组的at方法
如果发现我们当前的浏览器不支持at方法,那么,我们可以使用profill。原创 2022-09-27 09:33:13 · 1665 阅读 · 0 评论 -
js之空值判断
在一些多条件判断的时候,我们除了用。来连接条件之外,还可以使用。相当于对于一组条件的判断。原创 2022-09-15 13:34:54 · 1290 阅读 · 0 评论 -
一段时间后执行剩下的js代码
time.sleep。原创 2022-09-12 14:33:10 · 283 阅读 · 0 评论 -
js的toString方法
自定义函数会得到函数的源码内置函数会有的字符串}https。原创 2022-07-31 10:55:06 · 469 阅读 · 0 评论 -
script之type=module
importscript。原创 2022-07-22 14:18:56 · 10735 阅读 · 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 · 497 阅读 · 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 · 10344 阅读 · 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 · 559 阅读 · 0 评论 -
项目中用setTimeout代替setInterval
为什么要用setTimeout代替setInterval博客参考 点击,需要注意的是这两个定时器并不是定时执行,一般会延后一点点,秒数所表示的是,在一定时间后,被放入到队列中setInterval的缺陷使用 setInterval某些间隔会被跳过不执行当使用 setInterval时,仅当队列中没有该定时器的任何其他代码时,才会将定时器代码加入到队列中可以这么理解:每个setTimeout产生的任务会直接push到任务队列中;而setInterval在每次把任务push到任务队列前,都要进原创 2021-06-14 22:46:23 · 1069 阅读 · 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 · 301 阅读 · 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 · 219 阅读 · 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 · 1003 阅读 · 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 · 3751 阅读 · 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 · 458 阅读 · 0 评论 -
JS函数详解(二)
1 作用域与作用与链1.1 分类全局作用域:定义在全局,所有的变量都能访问到局部作用域:定义在函数体内,只有函数内的语句才能访问到块级作用域:是ES6之后出现的,使用 const 和 let ,会使{}形成一个封闭的作用域1.2 概念形象的比喻作用域,可以拿学校来做比喻全局作用域:就相当于整个学校,定义在全局作用于中的变量,就如同学校通过广播站传递的信息,所有的代码(学生),都能看到局部作用域和块级作用域,去们就相当于一个个的教室,在教室中发布的消息,只有教室中的学生能看到var原创 2020-07-11 18:42:11 · 318 阅读 · 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 · 414 阅读 · 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 · 272 阅读 · 0 评论 -
小白都能看明白的JS函数中的this
脑图1 核心本质上所有函数的调用都是通过某个对象调用的。即使我们通过函数直接调用,它也是通过window进行调用的,只不过window可以省略所有函数内部都有一个变量this,调用的方式不同,它就不同。就如同变色龙,靠近不同的物体,自身的颜色就会变成物体的颜色谁调用的函数,函数内部的this就是谁// 我们定义在全局的函数,相当于把函数定义在了window对象上function aTest(){ console.log(this) // window console.log('he原创 2020-07-08 12:14:39 · 201 阅读 · 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 · 849 阅读 · 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 · 774 阅读 · 0 评论 -
浏览器的事件驱动模型
原理图对于原理图的说明原理图可以分为三部分JS引擎(主线程)栈内存:相当于执行上下文栈(执行上下文对象并非一个真的对象),里面保存的是局部变量出现如图所示的情况是因为嵌套的内部函数没有调用堆内存:保存的都是对象WebAPI(分线程)事件管理模块:主要管理相应的回调函数,将回调函数放入回调队列(浏览器)DOM事件管理模块定时器事件管理模块ajax事件管理模块callback queue保存待处理的回调函数使用原理图解释定时器众所周知,J原创 2020-06-22 21:33:01 · 443 阅读 · 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 · 1540 阅读 · 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 · 332 阅读 · 0 评论