![](https://img-blog.csdnimg.cn/2021060211382074.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JS
文章平均质量分 64
JS
Jaywei.online
只有捋平了,才能走得更顺。
展开
-
如何理解“构造函数是类公共标识,但原型是唯一的标识“
"构造函数是类公共标识,但原型是唯一的标识"原创 2022-07-01 00:18:12 · 373 阅读 · 1 评论 -
Event Loop(事件循环)
事件循环 Event Loop 试题 async function async1(){ console.log("A") await async2() console.log("B") } async function async2(){ console.log("C") } console.log("D")setTimeout(function (){ console.log("E")},0)async1()new Promise(fu原创 2021-09-07 23:08:36 · 126 阅读 · 0 评论 -
JavaScript数组常用总结
**首先总结的意义就是让杂乱无章变得更加井然有序,这样在使用的过程思路会更加清晰。**数组使用方法注意点:- 变异方法和非变异方法。即变异方法使用会改变原数组,后者则不会。下面脑图将其进行了标注。- 你或许需要注意数组方法和字符串方法有几个方法相似,数组和字符串是如何切换的?- 有些方法参数是支持负数的,有些方法第二个参数不是代表坐标代表的是个数。- 甚至回调函数我们也可以将其梳理一遍,大部分回调函数参数格式是一样的,有些回调函数是不一样的。- 当split数组排序方法数组迭代方法...原创 2021-09-06 20:48:42 · 266 阅读 · 2 评论 -
Javascript对象的属性
Javascript对象的属性对象的属性按所属关系进行分类自有属性继承属性按属性的用途进行分类数据属性存取器属性对象的属性按所属关系进行分类自有属性意思就是定义在对象本身上面的属性;例如:下面定义在对象obj上的x,y属性。let obj = {x:12,y:24}继承属性从原型对象上继承而来的属性,称之为继承属性,虽然obj1本身没有定义z属性,但是他的原型链上有z属性,因此当使用obj1.z进行访问的时是可以访问到原型链上的z属性的。 let obj1 = {x:12,y:24}原创 2021-09-05 19:03:23 · 413 阅读 · 0 评论 -
说了你可能不信,其实JavaScript中的this关键字是鳝变的!!!
说了你可能不信,其实JS中的this是鳝变的!!!this的调用上下文是在执行的时候才确定的,而不是在函数定义的时候确定的。它和变量不同。当然this确实也不是一个变量。如果将this理解成:"函数中的this一般都指向所在的对象" 是错误的。这句话其实把this理解成是静态的,然而this是动态的实际上this最终指向的是那个调用它的对象。原创 2021-09-04 17:39:27 · 152 阅读 · 1 评论 -
Javascript常用字符串方法总结
Javascript常用字符串方法总结常用的字符串方法与查询相关查询字符串长度查询目标值的下标查询下标对应的值与修改相关与转换相关与提取相关与拼接有关常用的字符串方法与查询相关查询字符串长度length属性查询目标值的下标indexOf(targetStr,start)lastindexOf(targetStr,start)search(targetStr)查询下标对应的值charAt(index)charCodeAt(index)与修改相关trim()replac原创 2021-09-03 22:45:58 · 409 阅读 · 2 评论 -
JavaScript什么是类数组?
JavaScript怎么让类数组使用上数组的方法?什么是类数组?数组丰富的内建方法有哪些?如何让类数组使用上数组丰富的内建方法?什么是类数组?JavaScript 常见的类数组有arguments,还有获取Dom元素方法返回的结果(比如getElementsByTagName)自定义类数组要怎么定义?1. 类数组必须包含length属性2. 类数组中数组丰富的内建方法有哪些?如何让类数组使用上数组丰富的内建方法?...原创 2021-09-03 11:09:36 · 2829 阅读 · 0 评论 -
自己实现JavaScript关键字new的逻辑其实没有想象中那么复杂!!!
自己实现JavaScript关键字new的逻辑其实没有想象中那么复杂!!!我们用new关键字做什么?new关键字创建对象的时候做了什么?使用new关键字创建对象的演示自己实现new关键字逻辑我们用new关键字做什么?我们用new关键就是用来创关键一个对象。而创建这个对象需一个构造函数。new关键字创建对象的时候做了什么?首先创建一个对象将构造函数的原型挂在到这个对象的原型上调用构造函数,完成新创建对象的初始化返回创建好的对象使用new关键字创建对象的演示function Peop原创 2021-09-02 22:07:34 · 201 阅读 · 2 评论 -
查找数组最大/小值-多种玩法剖析
查找数组最值-多种玩法玩法一:先排序再通过端点下表取最值玩法二:使用ES6扩展运算符对数组进行处理作为Math.max的参数玩法三:使用apply函数调用的方式玩法四:使用call函数调用的方式玩法一:先排序再通过端点下表取最值//查找数组最大值let arr = [123,43,634,231,108]//方法1arr.sort((a,b)=> { return a - b})console.log(arr[arr.length-1])玩法二:使用ES6扩展运算符对数组原创 2021-09-02 11:45:28 · 104 阅读 · 0 评论 -
(var)变量提升与(let/const)暂时性死区的对比
为了能够快速了解,就不进行长篇大论了。变量提升针对的是使用var声明的变量和使用function进行声明,这两个声明的方式都存在变量提升,通俗的说变量提升就是可以在声明之前对其进行访问,更需要注意的是只是声明的被提升了,如果是声明和初始化(赋值),赋值这一步是没有执行的。暂时性死区,是ES6中使用let和const进行声明的变量而出现的,let,const 能够使得JS拥有块级作用域的效果。通过let,const声明的变量不会出现变量提升,而同时会出现暂时性死区,通俗移动的说,暂时性死区就是说通过let原创 2021-08-19 11:57:49 · 213 阅读 · 0 评论 -
防抖(debounce) 和 节流(throttling)的封装使用-最终发布npm
函数的防抖和节流目的都是为了限制函数的执行次数,前者是通过setTimeout进行实现,后者通过一定时间间隔进行实现;通过这次防抖函数的封装,你可能会对闭包,apply,call,bind,this指向,箭头函数,等知识有更深入的认识。原创 2021-06-07 11:16:52 · 1164 阅读 · 0 评论 -
如何理解闭包?闭包的特性
什么是闭包?闭包前言(你必须了解与之关联的知识)定义(通过了解了与之关联的知识来思考闭包的存在)理解(知识串联)案例简单的案例简单的应用(JS绑定事件示例)闭包前言(你必须了解与之关联的知识)提到闭包不得不提到,作用域链,更不得不提起词法作用域,学习闭包的时候总把自己搞得晕头转向?是不是觉得外部函数定义的局部变量在函数返回后就不存在了,之所以有这种想法,是因为我们忽略了作用域链的存在,晕头转向是因为我们忽略了词法作用域的特点。在Javascript并非函数执行结束后与之关联的作用域链就不存在了。定义原创 2021-06-03 23:02:44 · 175 阅读 · 0 评论 -
JS作用域,变量提升,作用域链,词法环境
JS变量作用域变量作用域JS有函数作用域,但是没有块作用域的概念。ES(2015)6 const和let变量提升(hoisting)变量没有被声明之前,也可以使用。变量提升只是对变量的声明提前了,而赋值并没有被提前。非函数变量的提升比较容易明白,函数里的变量提升,你注意过?作用域链变量作用域JS有函数作用域,但是没有块作用域的概念。值得注意的是,显示声明在函数里头的变量他是局部变量,若在函数里头直接使用未声明的变量则会隐式的声明成全局变量。代码演示:{ var a = '其实我是全局作用域原创 2021-06-02 22:33:15 · 179 阅读 · 1 评论