![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端
科学熊
充实自我,我思故我在。
华南农业大学
展开
-
npm install 报gyp verb `which` failed Error: not found: python2
node-sass的版本太低了,更新至"node-sass": “^6.0.1”,重新 npm install ,问题解决。原创 2023-11-02 16:03:43 · 1363 阅读 · 0 评论 -
npm install报 ERESOLVE unable to resolve dependency tree
都一切顺利,现在就不行,那很大的可能是npm的版本不同。三四年前的一个项目,打开,原创 2023-11-02 15:48:04 · 2847 阅读 · 0 评论 -
LayerUI中按钮点击一次,触发了两次事件
莫名其妙,看到代码中引用了两次LayUI,去掉重复的应用就可以解决问题。点击一次,触发了两次事件。原创 2023-10-24 17:24:42 · 525 阅读 · 2 评论 -
在LayerUI中使用onChange事件监听复选框的值变化
在上面的代码中,我们创建了一个名为MyComponent的React组件,并渲染了一个复选框。我们将复选框的value属性绑定到this.state.isChecked状态变量上,并将onChange事件处理函数绑定到handleChange方法上。当复选框的状态发生变化时,handleChange方法会被调用,并更新状态变量isChecked的值。同时,我们还在控制台中打印出当前复选框的状态值,以便观察变化。通过这种方式,你可以监听复选框的值变化,并在需要的时候执行相应的操作。原创 2023-10-24 15:56:24 · 801 阅读 · 0 评论 -
监听和获取LayerUI中的switch值
在上面的代码中,通过监听switch(isCheck)事件来判断switch是否被选中。当switch的值发生改变时,会触发相应的事件,在该事件中获取到data.elem.checked的值,如果该值为true,则表示switch被选中,否则表示未选中。此外,如果正在使用layui框架,那么可能需要使用layui的表单模块来访问和控制你的switch。如果有多个switch元素,你可能需要用其他方式来唯一标识需要检查的switch,比如class或者data-属性。原创 2023-10-16 10:16:33 · 992 阅读 · 0 评论 -
jQuery获取URL中的最后一个文件名
这段代码将URL字符串分割成数组,并使用pop()方法获取数组中的最后一个元素,即文件名。在此示例中,输出将是 file.html。原创 2023-10-11 16:00:52 · 173 阅读 · 0 评论 -
使用 jQuery 来动态地设置 HTML 按钮的显示和隐藏
在这个例子中,我们使用了 jQuery 的选择器来选择 id 为 “myButton” 的按钮元素。然后,我们使用 click() 方法为按钮添加了一个点击事件监听器。当用户点击按钮时,事件监听器会检查按钮当前是否显示。如果是显示的,则使用 hide() 方法将按钮隐藏;如果是隐藏的,则使用 show() 方法将按钮显示。可以使用 jQuery 来动态地设置 HTML 按钮的显示和隐藏。// 如果按钮当前是显示的,则设置为隐藏。// 如果按钮当前是隐藏的,则设置为显示。// 检查按钮当前是否显示。原创 2023-10-11 10:12:40 · 926 阅读 · 0 评论 -
js中添加屏蔽F12 审查元素、屏蔽开发者工具、屏蔽右键菜单、屏蔽剪切、屏蔽选中操作
在看某个网站时,看到一段话想复制一下,结果复制不了。想打开F12看看元素进行复制,也不行,没有反应。最后通过打开开发者工具看看,结果一打开就跳到。于是乎复制网址地址,放到Postman中请求看看它的源码如何写的。看到这操作一脸懵逼,小样的,还有这种操作。原创 2023-09-06 11:18:46 · 1006 阅读 · 0 评论 -
【ES6】require、export和import的用法
在JavaScript中,require、export和import是Node.js的模块系统中的关键字,用于处理模块间的依赖关系。原创 2023-09-04 13:49:29 · 1571 阅读 · 0 评论 -
【ES6】js中的__proto__和prototype
在JavaScript中,__proto__和prototype都是用于实现对象继承的关键概念。原创 2023-09-04 10:59:22 · 1055 阅读 · 0 评论 -
【ES6】js 中class的extends、super关键字用法和避坑点
在JavaScript中,使用class关键字可以实现面向对象编程。其中,extends和super是两个非常重要的关键字,它们分别用于实现类的继承和调用父类的方法。原创 2023-09-04 09:56:03 · 2116 阅读 · 0 评论 -
【ES6】Class中this指向
先上代码:${输出:${输出:${调试界面,this显示undefined,在单独调用时,this的指向是undefined。在单独调用的场景下,要如何才能解决该问题呢?下面给出两种种比较简单的解决方法。原创 2023-09-04 09:09:33 · 984 阅读 · 0 评论 -
【ES6】class静态方法
上面代码中,Foo类的classMethod方法前有static关键字,表明该方法是一个静态方法,可以直接在Foo类上调用(Foo.classMethod()),而不是在Foo类的实例上调用。上面代码中,静态方法bar调用了this.baz,这里的this指的是Foo类,而不是Foo的实例,等同于调用Foo.baz。如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。注意,如果静态方法包含this关键字,这个this指的是类,而不是实例。原创 2023-09-01 16:31:35 · 566 阅读 · 0 评论 -
【ES6】 JavaScript 中的Object.assign
在这个例子中,尽管 obj3 是从 obj1 和 obj2 复制的,但是 obj3.a 和 obj1.a 是同一个引用,指向同一个对象。需要注意的是,Object.assign() 是浅复制(shallow copy),意味着如果源对象中的值是一个对象引用,它只是复制了这个引用,而没有复制引用的对象。Object.assign() 是 JavaScript 中的一个方法,它用于复制源对象的所有可枚举属性到目标对象。在这个例子中,source 对象的所有可枚举属性都被复制到了 target 对象。原创 2023-09-01 11:41:22 · 877 阅读 · 0 评论 -
【ES6】fetch函数和Promise
在这个例子中,我们首先向https://api.example.com/data发起一个GET请求。如果解析失败,或者在任何其他步骤中发生错误,我们捕获这个错误并打印错误信息。注意,fetch并不直接返回请求的结果,而是返回一个Promise。它返回一个Promise,这个Promise在请求成功时解析为Response对象,或者在请求失败时拒绝。在这个例子中,我们使用async/await语法来等待Promise解析。这使得我们的代码看起来更像是同步的代码,但是实际上它仍然是异步的。原创 2023-09-01 09:29:10 · 1117 阅读 · 0 评论 -
【ES6】JavaScript中的异步编程:async和await
async和await关键字使得JavaScript的异步编程变得更加简单和直观。通过使用这些关键字,我们可以将异步操作以同步的方式编写,使得代码更加清晰和易于理解。虽然这些关键字有一些特殊的语法规则,但是一旦你习惯了它们的使用方式,你就会发现它们非常有用。原创 2023-09-01 08:49:53 · 764 阅读 · 0 评论 -
【ES6】Generator 函数
Generator 函数是 ES6 引入的一种新的函数类型,它既可以生成一个序列,又可以在某个条件下停止执行,并在需要时恢复执行。Generator 函数非常适合处理那些需要按需计算的场景,例如处理大数据、生成随机数等。原创 2023-08-31 16:44:58 · 719 阅读 · 0 评论 -
【ES6】迭代器Iterator
return {在这个例子中,我们定义了一个createIterator函数,它接收一个数组作为参数,并返回一个具有next方法的对象。next方法在每次调用时返回一个包含当前元素和done属性的对象,当所有元素都被访问后,done属性将为true。原创 2023-08-31 16:29:58 · 692 阅读 · 0 评论 -
【ES6】Promise.allSettled的用法
然后,我们使用Promise.allSettled()方法处理这三个Promise对象,返回一个新的Promise对象。这个新的Promise对象在所有原始Promise都完成后才解析,并将每个原始Promise的状态和结果存储在一个数组中。Promise.allSettled() 是一个Promise方法,用于处理一个Promise数组,返回一个新的Promise数组,每个元素对应原始Promise的状态。promise1已经解析,promise2将在1秒后解析,promise3将在2秒后被拒绝。原创 2023-08-31 15:59:53 · 1116 阅读 · 0 评论 -
【ES6】Promise常用的方法
【代码】【ES6】Promise常用的方法。原创 2023-08-31 15:40:35 · 705 阅读 · 0 评论 -
【ES6】Promise.race的用法
Promise.race()方法的参数与Promise.all()方法一样,如果不是 Promise 实例,就会先调用下面讲到的Promise.resolve()方法,将参数转为 Promise 实例,再进一步处理。上面代码中,只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数。Promise.race()方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。原创 2023-08-31 15:35:55 · 1370 阅读 · 0 评论 -
【ES6】Promise.all用法
Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。上面代码中,Promise.all()方法接受一个数组作为参数,p1、p2、p3都是 Promise 实例,如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。另外,Promise.all()方法的参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例。p的状态由p1、p2、p3决定,分成两种情况。原创 2023-08-31 15:25:42 · 1357 阅读 · 0 评论 -
【ES6】Promise推荐用法
这就是说,Promise 内部的错误不会影响到 Promise 外部的代码,通俗的说法就是“Promise 会吃掉错误”。上面代码中,第二种写法要好于第一种写法,理由是第二种写法可以捕获前面then方法执行中的错误,也更接近同步的写法(try/catch)。因此,建议总是使用catch()方法,而不使用then()方法的第二个参数。跟传统的try/catch代码块不同的是,如果没有使用catch()方法指定错误处理的回调函数,Promise 对象抛出的错误不会传递到外层代码,即不会有任何反应。原创 2023-08-31 14:31:06 · 619 阅读 · 0 评论 -
【ES6】用Promise对象实现的 Ajax 操作
【代码】【ES6】用Promise对象实现的 Ajax 操作。原创 2023-08-31 09:31:55 · 49 阅读 · 0 评论 -
【ES6】Promise的入门介绍
在这个例子中,我们创建了一个新的 Promise,它将在 1 秒后根据随机数决定成功或失败。然后我们调用 then() 和 catch() 方法来处理成功或失败的情况。如果 Promise 成功,then() 里的函数会被执行并打印 “成功!如果 Promise 失败,catch() 里的函数会被执行并打印 “失败!Promise 是 JavaScript 中的一个对象,用于处理异步操作。Promise 对象代表一个最终可能完成(并得到结果)或失败(并被拒绝)的操作,以及其结果的值。原创 2023-08-31 08:53:47 · 543 阅读 · 0 评论 -
【ES6】JavaScript中Reflect
Reflect是JavaScript中的一个内建对象,它提供了一组方法,用于对对象和函数进行操作和检查。这些方法与内建对象的方法非常相似,但具有更高的灵活性。以下是Reflect对象的一些常用方法:原创 2023-08-30 17:36:02 · 454 阅读 · 0 评论 -
【ES6】Proxy的高级用法,实现一个生成各种 DOM 节点的通用函数dom
下面的例子则是利用get拦截,实现一个生成各种 DOM 节点的通用函数dom。原创 2023-08-30 16:13:10 · 434 阅读 · 0 评论 -
【ES6】利用 Proxy实现函数名链式效果
利用 Proxy,可以将读取属性的操作(get),转变为执行某个函数,从而实现属性的链式操作。上面代码设置 Proxy 以后,达到了将函数名链式使用的效果。原创 2023-08-30 15:58:32 · 188 阅读 · 0 评论 -
【ES6】JavaScript 中的数组方法reduce
如果没有提供初始值,那么将使用数组的第一个元素作为初始值,如果数组为空,则返回 undefined。在这个例子中,我们提供了一个初始值 100,然后对数组中的每个元素执行回调函数,将回调函数的返回值累加到累加器中。reduce() 是一个 JavaScript 中的数组方法,它会对数组的每个元素执行一个提供的 reducer 函数,将其减少到一个单一的值。它是上一次调用回调时返回的累积值,或者 initialValue(如果提供了的话)。currentIndex(可选):正在处理的数组元素索引。原创 2023-08-30 15:55:56 · 437 阅读 · 0 评论 -
【ES6】JavaScript的Proxy:理解并实现高级代理功能
在JavaScript中,Proxy是一种能够拦截对对象的读取、设置等操作的机制。它们提供了一种方式,可以在执行基本操作之前或之后,对这些操作进行自定义处理。这种功能在许多高级编程场景中非常有用,比如实现数据验证、日志记录、权限控制等。原创 2023-08-30 15:27:11 · 556 阅读 · 0 评论 -
【js】清理器注册表功能 FinalizationRegistry
如果没有这个参数,则回调函数无法取消。上面代码中,FinalizationRegistry()是系统提供的构造函数,返回一个清理器注册表实例,里面登记了所要执行的回调函数。上面示例中,theObject就是所要观察的目标对象,一旦该对象被垃圾回收机制清除,注册表就会在清除完成后,调用早前注册的回调函数,并将some value作为参数(前面的heldValue)传入回调函数。上面示例与前一节的例子相比,就是增加一个清理器注册表,一旦缓存的原始对象被垃圾回收机制清除,会自动执行一个回调函数。原创 2023-08-30 14:41:03 · 213 阅读 · 0 评论 -
【ES6】JavaScript中的Symbol
Symbol.for()是Symbol的一个方法,它用于创建一个已经注册的Symbol对象。当使用Symbol.for()创建Symbol对象时,会首先检查已经注册的Symbol对象中是否存在与给定字符串相同的Symbol,如果存在,则返回该Symbol对象,否则创建一个新的Symbol对象并注册到已经注册的Symbol对象中。Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符,可以作为对象的属性键,确保对象的属性键的唯一性和不可变性。原创 2023-08-30 10:53:42 · 387 阅读 · 0 评论 -
HTTP请求超时:问题、原因与解决方案
重新设置请求头:在发送HTTP请求时,可以修改请求头中的一些字段,以减少HTTP请求的次数。通过设置请求超时阈值、限制请求速度、重新设置请求头、加强网络安全等措施,可以有效降低HTTP请求超时的发生概率。其他可能的解决方案:如使用CDN加速、优化数据库查询等,都可以有效提高请求响应速度,减少超时的发生。设置请求超时阈值:在发送请求前,先设置一个合理的超时时间,以避免长时间等待无响应的请求。重新设置请求头:通过优化请求头,减少HTTP请求的次数,提高请求的效率。原创 2023-08-30 10:41:56 · 8089 阅读 · 0 评论 -
【js】Set 、 Map、WeakSet
JavaScript 的 Set 和 Map 是两种数据结构,而 WeakSet 是一种特殊类型的 Set。原创 2023-08-30 08:57:25 · 114 阅读 · 0 评论 -
【ES6】,ES6中class用法
在上面的示例中,我们定义了一个名为MyClass的类,它有一个构造函数(constructor)和一个名为sayHello的方法。通过使用new关键字创建MyClass的实例,我们可以调用该实例的方法。在上面的示例中,我们定义了一个带有静态方法的类,一个带有访问器的属性,以及一个简单的 getter 和 setter。在JavaScript中,ES6引入了class关键字,用于创建基于原型的继承类。class语法提供了一种更简洁、更易于阅读和理解的面向对象编程方式。原创 2023-08-29 16:42:54 · 434 阅读 · 0 评论 -
【ES6】期望对象属性为null或undefined时,设置默认值
【代码】【ES6】期望对象属性为null或undefined时,设置默认值。原创 2023-08-29 10:41:04 · 273 阅读 · 0 评论 -
【ES6】ES6遍历属性的方法
of循环和Object.entries()方法。of循环和Object.values()方法。in循环和Object.keys()方法。of循环和展开语法(…原创 2023-08-28 17:00:54 · 481 阅读 · 0 评论 -
【js】JavaScript面向对象
在上面的代码中,我们首先定义了一个名为Person的构造函数,该构造函数接受两个参数:name和age,并将它们分配给新创建的对象。然后,我们将sayHello方法添加到Person的原型中,以便所有Person对象都可以使用该方法。接下来,我们使用new关键字创建了一个新的Person对象,并调用该对象的sayHello方法。最后,我们创建了一个没有使用构造函数的普通对象,并定义了与Person对象相同的方法和属性。原创 2023-08-28 16:31:32 · 184 阅读 · 0 评论 -
【ES6】Getter和Setter
在上面的示例中,我们使用对象字面量定义了一个名为obj的对象,该对象具有一个名为_value的私有属性。我们还定义了一个名为value的getter和setter方法,该方法允许我们获取和设置_value属性的值。在这个示例中,我们使用Object.defineProperty()方法定义了一个名为value的属性,并为其提供了getter和setter方法。除了使用对象字面量,我们还可以使用Object.defineProperty()方法来定义getter和setter方法。原创 2023-08-28 16:08:05 · 556 阅读 · 0 评论 -
【ES6】箭头函数和普通函数的区别
(3)不可以使用arguments对象,该对象在函数体内不存在。1、不可以当作构造函数,也就是说,不可以对箭头函数使用new命令,否则会抛出一个错误。代码运行到第二断点处,此时出现方法demo02的局部变量Local,this指向的是。(4)不可以使用yield命令,箭头函数不能用作 Generator 函数。(2)不可以当作构造函数,不可以对箭头函数使用new命令,否则抛出错误。,从这可以看出箭头函数继承了调用它时的this。而定时器中是箭头函数的,这时this指向的。(1)箭头函数没有自己的this。原创 2023-08-18 14:09:55 · 999 阅读 · 0 评论