![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
文章平均质量分 73
Lemon_dingding
这个作者很懒,什么都没留下…
展开
-
数组中 forEach 和 Map 的区别
MDN上对Map和ForEach的定义forEach(): 对数组的每个元素执行一次给定的函数。map(): 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。原创 2022-08-25 22:20:46 · 1870 阅读 · 2 评论 -
浅拷贝与深拷贝
一、对浅拷贝与深拷贝的理解浅拷贝和深拷贝是针对引用数据类型而言的,对于基本数据类型是没有深浅拷贝的概念。二、从存储的角度理解js的基本数据类型(String,Number,Boolean,null,Undefined)是存在栈内存的,当发生赋值b=a时会直接在栈内存中开辟一个新空间。a和b是两块独立的空间。修改b不会影响a的值。而js对于引用数据类型object。存储时会在栈内存存储引用(堆内存中存值的地址),堆内存存储真正的值,栈内存中的引用指向堆内存的值。当发生 = 的赋值操作 b原创 2022-04-21 11:08:47 · 1193 阅读 · 3 评论 -
JS for in 与 for of 的区别
for in 是ES5标准,遍历的是key(可遍历对象,数组和字符串的key)for of 是ES6标准,遍历的是value(可遍历对象,数组和字符串的value)一、for infor in 用来循环数组不是一个合适的选择 ,使用for...in可以遍历数组,但会存在以下问题:index索引为字符串型数字(数字,非数字),不能进行集合运算 遍历顺序有可能不是按照实际数组的内部顺序(可能按照随机顺序) 使用for-in会遍历数组所有的可枚举属性,包括原型。原型方法method和name属原创 2022-04-21 10:49:46 · 3594 阅读 · 0 评论 -
async和await
async和await 是es6新增的关键字,用于把异步变同步;async在函数定义时使用,用async定义的函数默认返回一个Promise实例,可以直接.then(async还可以定义对象的方法),如果async定义的函数执行返回的不是一个promise对象,那么就会给返回值包装成一个promise对象(将返回值放进promise实例的resolve方法中当做参数)await (要和async一起使用,一般是在async声明的函数中使用)await 会等待,等它右侧的代码执行完;用法1原创 2022-04-03 21:53:31 · 756 阅读 · 0 评论 -
JS自执行函数
自执行函数是什么?自执行函数就是当它被定义出来,就会自动执行的函数。不需要调用,传参也很方便。(function aaa(a,b){ return sum = a + b;})(1,2) 通过控制台可以发现sum实现了两个数的相加。 自执行函数有三种写法: ( function ( “ 参数 ” ) { " 函数方法 " ; } ) ( “ 给参数传的值 ” ) ( function ( " 参数 " ) { “ 函数方法 ” ; } ( " 给参数传的值 " )原创 2022-04-03 21:48:39 · 6000 阅读 · 1 评论 -
JS原型与原型链
一、什么是原型原型:每个js对象(除null)创建的时候,都会与之关联另一个对象,这个对象就是我们说的原型,每一个对象都会从原型中“继承”属性。例如:var obj = new Object();创建一个对象的时候都会同时关联一个对象,如图,关联的这个对象就是新建的对象obj的原型二、prototype在js中,每个函数都有一个prototype属性,这个属性指向函数的原型对象,(函数也是个对象)var obj = new Object();所谓的prototype其原创 2022-04-03 21:46:56 · 6054 阅读 · 3 评论 -
JS中的同步与异步、宏任务与微任务
同步与异步javascript语言是一门“*单线程*”的语言同步和异步的差别就在于这条流水线上各个流程的执行顺序不同。最基础的异步是setTimeout和setInterval函数 console.log( "1" ); setTimeout(function() { console.log( "2" ) }, 0 ); setTimeout(function() { conso原创 2022-04-03 21:34:27 · 452 阅读 · 0 评论 -
JS数组打平方法
ECMAScript 2019 在 Array.prototype 上增加了两个方法:flat()和 flatMap()。这两个方法为打平数组提供了便利。如果没有这两个方法,则打平数组就要使用迭代或递归。数组打平也称数组扁平化,就是将数组里面的数组打开,最后合并为一个数组注意 flat()和 flatMap()只能用于打平嵌套数组。嵌套的可迭代对象如 Map 和 Set不能打平。在没有这两个方法之前,打平数组就要用迭代或者递归的方法function flatten(sourceArray,原创 2022-04-03 21:26:10 · 2792 阅读 · 0 评论 -
JS中的Storage
介绍Web Storage 的目的是解决通过客户端存储不需要频繁发送回服务器的数据时使用 cookie 的问题。Web Storage 规范最新的版本是第 2 版,这一版规范主要有两个目标:提供在 cookie 之外的存储会话数据的途径; 提供跨会话持久化存储大量数据的机制。localStorage 是永久存储机制,sessionStorage 是跨会话的存储机制。Storage 类型Storage 类型用于保存名/值对数据,直至存储空间上限(由浏览器决定)。Storage 的实例与原创 2022-04-03 21:20:59 · 4166 阅读 · 0 评论 -
客户端存储cookie
cookie 只是在客户端存储数据的一个选项Cookie 的作用就是用于解决 "如何记录客户端的用户信息": 当用户访问 web 页面时,他的名字可以记录在 cookie 中。 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。 定义cookie是由服务器发送给客户端(浏览器)的最小量信息。作用cookie是键值对形式存储的少量信息,那它有什么作用呢?我们知道,平时上网时都是使用无状态的HTTP协议传输出数据,这意味着客户端与服务端在数据传送完成后就原创 2022-04-03 21:16:12 · 1313 阅读 · 0 评论 -
JS中的trimStart() 、trimEnd()、padStart()和padEnd()方法
trimStart() 和 trimEnd()分别用于删除字符串开头和末尾的空格let s = ' foo ';console.log(s.trimStart());//foo //console.log(s.trimEnd()); // foopadStart()和padEnd()padStart()和padEnd()用于补全字符串padStart()padStart()可以在字符串的开头进行字符补全。语法:string.padStart(<maxL.原创 2022-04-03 21:02:47 · 2196 阅读 · 0 评论