javascript
文章平均质量分 83
一天一丢丢
这个作者很懒,什么都没留下…
展开
-
节流和防抖
防抖触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间实现方式每次触发事件时设置一个延迟调用方法,并且取消之前的延时调用方法//防抖debounce代码:function debounce(fn) { let timeout = null; // 创建一个标记用来存放定时器的返回值 return function () { // 每当用户输入的时候把前一个 setTimeout clear 掉 clearTimeo原创 2021-11-30 20:27:06 · 76 阅读 · 0 评论 -
ECMA2015 - ECMA2021新增特性(es6)
es6相关特性原创 2021-11-24 22:41:52 · 848 阅读 · 0 评论 -
js 中四种循环对比
js 中四种循环对比for循环for循环的特点是简单,书写麻烦,使用如下:let arr = [1, 2, 3];for(let i = 0; i < arr.length; i++){ console.log(`${i} => ${arr[i]}`);}可以通过缓存数组长度的方式进行优化,当数组较大时效果比较明显。let arr = [1, 2, 3];let len = arr.length;for(let i = 0; i < len; i++){ con原创 2021-11-23 21:09:44 · 1767 阅读 · 0 评论 -
es6 Iterator(迭代器)
Iterator(迭代器)由来及意义在编程中,集合是个很重要的概念,js原有的集合主要是数组,对象,es6又添加了set,map。这样就有了四种集合,用户还可以根据需要组合适合的数据结构。有了4中集合之后,就需要一种统一的机制来遍历,访问这些数据结构。迭代器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。具体实现Iterator 的遍历过程是这样的。原创 2021-11-23 19:47:57 · 897 阅读 · 0 评论 -
Promise
Promise概览Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。Promise最早是commonjs的标准,es2015(es6)将其写进了语言标准,统一了用法,并原生提供了Promise对象。Promise 对象有下面三种状态:Pending状态(进行中)Fulfilled状态(已成功)Rejected状态(已失败)并且一旦状态改变就不会再变 (两种状态改变:成功或失败)Pending -> FulfilledPending原创 2021-11-23 14:51:11 · 102 阅读 · 0 评论 -
js之旅(十一)js中的闭包
本文主要讲解js中闭包的使用。一、js的作用域要了解闭包,首先要理解js的作用域,js作用域分为两种,全局作用域和函数作用域,在全局定义的变量在任何地方都可以调用,而在函数内部定义的变量仅仅可以在函数内部使用。var a = 1;//全局作用域console.log(a);//1function test(){ var b = 2;//函数作用域 console.log(b);}test();//2console.log(b);//VM132:8 Uncaught ReferenceEr原创 2020-07-12 23:54:27 · 124 阅读 · 0 评论 -
JavaScript异步编程
js为什么是单线程的JavaScript单线程,与它的用途有关。作为浏览器脚本语言,JavaScript 的主要用途是与用户交互,以及操作 DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个 DOM 节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?所以,为了避免复杂性,从一诞生,JavaScript 就是单线程的。js单线程会遇到哪些问题js是单线程的,所以它执行代码时是顺序执行的,这样不可避免的会产生一原创 2021-11-06 19:51:32 · 716 阅读 · 0 评论 -
js之旅(十五)js向上取整、向下取整、四舍五入等
只保留整数部分(丢弃小数部分)parseInt(5.1234); // 5向下取整(<= 该数值的最大整数,和parseInt()一样)Math.floor(5.1234); // 5向上取整(有小数,整数部分就+1)Math.ceil(5.1234); // 6四舍五入(小数部分)Math.round(5.1234); // 5Math.round(5.6789); // 6取绝对值Math.abs(-1);.原创 2020-11-10 20:26:39 · 730 阅读 · 0 评论 -
js之旅(十四)js 三种本地存储--localStorage;sessionStorage;cookie
一、localStoragelocalStorage将数据存在在本地,并且没有时间限制,一般同源存储大小为5M左右;只有手动删除时localStorage中的数据才会被清理。保存数据:localStorage.setItem("test", JSON.stringify(data));获取数据:console.log(JSON.parse(localStorage.getItem("test")));删除数据:localStorage.removeItem("test");数据保存位置原创 2020-07-19 11:05:31 · 2102 阅读 · 0 评论 -
js之旅(十三)js事件委托(事件代理)
本文主要介绍了js中事件冒泡,事件捕获,事件代理。一、事件传播一个事件触发后,会在子元素和父元素之间传播(propagation)。这种传播分成三个阶段:捕获阶段:从window对象传导到目标节点(上层传到底层)称为“捕获阶段”(capture phase),捕获阶段不会响应任何事件(addEventListener可以将第三个参数置为true用来响应捕获事件)目标阶段:在目标节点上触发,称为“目标阶段”冒泡阶段:从目标节点传导回window对象(从底层传回上层),称为“冒泡阶段”(bubbli原创 2020-07-17 00:44:01 · 346 阅读 · 1 评论 -
js之旅(十二)js原生方法实现ajax请求
本文主要介绍了如何通过原生js的方法实现一个ajax get请求,post请求。一、什么是ajaxAjax 即Asynchronous Javascript And XML(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。这个地方的XML指的是XMLHttpRequest对象,从ajax的定义中可以获取下面信息:ajax操作的是js和XMLHttpRequest对象交互式说明和后端有交互,即发送请原创 2020-07-15 20:49:55 · 296 阅读 · 0 评论 -
js之旅(十)import/export和require/module.exports(exports)
本博讲述了import与require的区别与联系原创 2020-07-09 08:16:13 · 495 阅读 · 0 评论 -
js之旅(九)js的继承
本文主要讲解js中几种实现继承的方法。一、概念解读通过【某种方式】让一个对象可以访问到另一个对象中的属性和方法,我们把这种方式称之为继承 并不是所谓的xxx extends yyy。这里构造一个父构造函数Animal():function Animal(age, name){ //属性 this.age = age; this.name = name; this.friend = []; //实例方法 this.say = function () { console.log("I a原创 2020-07-05 11:19:33 · 167 阅读 · 0 评论 -
js之旅(八)js中的原型和原型链
本文主要讲述的是js中的原型和原型链。一、构造方法在将js的原型链之前需要先了解一下js中的构造方法,js中(es5),一个方法function通常就是一个构造方法,通常我们会将这个构造方法的首字母大写,用new function来创建一个实例:function Student(name, age){ this.name = name; this.age = age;}var stu = new Student();在上面的例子中 Student就可以作为一个构造方法。二、实例原型每个原创 2020-07-04 00:30:11 · 146 阅读 · 0 评论 -
js之旅(七)js中this
本文讲述js中this的指向;介绍ES5和ES6中this的不同原创 2020-07-02 00:24:47 · 238 阅读 · 0 评论 -
js之旅(六)js中set的使用
set是ES6中的数据结构,和数组的区别是set不能有重复的值,本文将简单介绍set的使用。原创 2020-06-29 13:34:46 · 3865 阅读 · 0 评论 -
js之旅(五)js中的对象和Map
object和Map存储的都是键值对组合,本文将介绍json对象和map的使用,对比它们之间的差异原创 2020-06-28 21:21:00 · 2322 阅读 · 0 评论 -
js之旅(四)js中的数组
本博文讲解了js中数组的相关知识,包含数组的遍历,数组元素的增删改查,二维数组的生成,数组的排序原创 2020-06-27 13:39:06 · 493 阅读 · 0 评论 -
js之旅(三)js中的字符串
本文主要讲解js中字符串的定义,判断,字符串处理(包括字符串拼接,字符串提取,字符串分割,字符串正则,字符串匹配)原创 2020-06-26 22:35:20 · 304 阅读 · 0 评论 -
js之旅(二)js数据类型
本文注重讲解js的八种数据类型,类型之间的转换,如何判断数据类型。原创 2020-06-26 00:50:19 · 297 阅读 · 0 评论 -
js之旅(一)js变量
本博文讲解了js中的变量,分析了var,let声明变量的区别,讲解了变量的作用域,临时性死区,变量提升原创 2020-06-23 08:17:05 · 381 阅读 · 0 评论