
原生js
文章平均质量分 58
罗会
生活没有一劳永逸,要想不被抛弃,必须自己争气。
一个人如果不想输,就要不断学好眼前的东西,它们将来都会大有用处…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
js常用功能
1.随机生成一个颜色值let color=Math.floor(Math.random() * 0xffffff) .toString(16);//输出结果'45c4e3'2.滚动到顶部初学者经常发现自己在正确滚动元素的过程中遇到困难。最简单的滚动元素的方法是使用scrollIntoView方法。添加行为。"smooth "来实现平滑的滚动动画。const scrollToTop = (element) => element.scrollIntoView({ behavior: "sm原创 2022-04-14 17:00:41 · 410 阅读 · 0 评论 -
flat()方法将多维数组变为一维数组,扁平化数组
flat()将二维数组转换为一维数组。flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。 flat除了有扁平化嵌套数组之外还可以扁平化空项。实例,将一个二维数组转换为一维数组:let arr=[1,2,[3,4],[5,8],9];let arrnew=arr.flat();console.log(arrnew);//输出结果:[1, 2, 3, 4, 5, 8, 9]实例,使用Infinity将多层次深度数组转换为一维数组l原创 2022-04-02 17:09:47 · 825 阅读 · 0 评论 -
Object.entries()返回一个给定对象自身可枚举属性的键值对数组,返回的是一个二维数组
Object.entries()Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性。输出对象的键值对,返回的是一个二维数组实例:let obj1={a:1,b:2,c:5};let obj2=Object.entries(obj1);console.log(obj2);//输出结果//[['a', 1],['b', 2],['c', 5]]由于Obj原创 2022-04-02 16:47:23 · 569 阅读 · 0 评论 -
Set对象的详细用法
1.Set对象Set对象可以自动排除重复项,生成Set对象后,可以轻松遍历它所包含的内容。实例,给一个数组去重//现有一个数组let arr=[1,3,1,2,3,4];//把数组转换成Set对象let s=new Set(arr);//Set自动去重,并赋值给变量sconsole.log(s);//Set(4) {1, 3, 2, 4}//此时再把Set对象转换成数组,使用[...]扩展运算符或者使用Array.from()都可以将Set对象转换成数组let newArr=[...s]原创 2022-04-02 11:40:06 · 1030 阅读 · 0 评论 -
Map对象用法
1.Map对象特点:Map是一组键值对的结构,具有极快的查找速度。使用场景:Map主要的应用场景在于数组去重和数据存储。用来存储键值对 Key—Value,注意key不能重复,如果一个key对应多个value,那么后面的会覆盖前面的。使用方法:初始化Map需要一个二维数组,或者直接初始化一个空Map。Map具有以下方法:let m=new Map();//初始化一个空Mapm.set("lisa",90);//添加key和valuem.set("tom",74);console.log(m原创 2022-04-02 11:14:33 · 1025 阅读 · 0 评论 -
js中常用的循环
1.for循环(1)循环数组 let arr = ["lisa", "lili", "sam", "joy"]; for (let i = 0; i < arr.length; i++) { console.log(arr[i]);//输出数组每一个元素 }(2)循环字符串 let arr = "hello"; for (let i = 0; i < arr.length; i++) { console.log(原创 2022-04-02 10:29:29 · 646 阅读 · 0 评论 -
at()方法可以获取数组倒数第几个参数
.at()方法方法里面的参数放索引。建议在所有基本可索引类,例如:数组、字符串、类数组(arguments)中添加.at()方法。.at()支持正索引和负索引。例如,针对数组:let arr=[1,2,3,4,5];//获取数组倒数第一个值arr.at(-1);//5//获取数组倒数第二个值arr.at(-2);//4例如,针对字符串let s="hello";//获取字符串倒数第1个字符s.at(-1);//结果是o//获取倒数第2个字符s.at(-2);//结果是l.原创 2022-02-08 10:37:07 · 1950 阅读 · 0 评论 -
js深浅拷贝
js中深浅拷贝有哪些方式?(1)遍历赋值(2)Object.create()(3)JSON.parse()和JSON.stringify()什么是深浅拷贝?就是假如B复制了A,当修改A时,看B是否发生变化,如果B也跟着变了,这就是浅拷贝;如果B没变,那就是深拷贝;实例,如下是一个浅拷贝: let a={key:1}; let b=a; b.key=2; console.log(a.key);//输出结果是2,当修改b时,a的key值也被修改了浅拷贝如下例子使用遍历的方式进原创 2021-09-22 12:29:52 · 116 阅读 · 0 评论 -
数据类型获取及js堆栈使用原理
一、js中有哪些数据类型:(1)原始类型stringnumberbooleanundefinednull(2)引用类型object三大引用类型包括:Object,Array,Function(对象,数组,函数)js堆栈:什么是堆,什么是栈?栈:计算机为原始类型开辟的一块内存空间,string,number…堆:计算机为引用类型开辟的一块内存空间,object对于引用类型的理解:例如:var c={key:1};计算机会给c在栈里面存一个地址值,如[‘x0000123’原创 2021-09-20 14:37:31 · 379 阅读 · 0 评论 -
常用命名规则
1.变量名变量名推荐使用驼峰法来命名:let firstName;let lastName;变量和函数为小驼峰法标识, 即除第一个单词之外,其他单词首字母大写( lowerCamelCase)全局变量为大写 (UPPERCASE )常量 (如 PI) 为大写 (UPPERCASE )css命名规则HTML 和 CSS 的横杠(-)字符:HTML5 属性可以以 data- (如:data-quantity, data-price) 作为前缀。CSS 使用 - 来连接属性名 (font原创 2021-05-14 14:04:42 · 155 阅读 · 0 评论 -
js异步编程,同步和异步,阻塞和非阻塞
1.什么是同步,什么是异步?定义:同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。同步,就是调用某个东西是,调用方得等待这个调用返回结果才能继续往后执行。异步,和同步相反 调用方不会理解得到结果,而是在调用发出后调用者可用继续执行后续操作,被调用者通过状体来通知调用者,或者通过回掉函数来处理这个调用比方说:你去商城买东西,你看上了一款手机,能和店家说你一个这款手机,他就去仓库拿货,你得在店里等着,不能离开,原创 2021-04-13 11:50:07 · 1210 阅读 · 0 评论 -
TypeScript安装与运行
什么是TypeScript?TypeScript是JavaScript的超集,具有可选的类型并可以编译为纯JavaScript。从技术上讲TypeScript就是具有静态类型的JavaScript 。TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的JavaScript 可以运行在任何浏览器上。TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一原创 2021-01-21 18:00:57 · 2422 阅读 · 0 评论 -
...rest剩余参数
剩余参数作用:我们知道JS函数内部有个arguments对象,可以拿到全部实参。现在ES6给我们带来了一个新的对象,可以拿到除开始参数外的参数,即剩余参数,这个新的对象和arguments不一样,它是程序员自定义的一个普通标识符,只是需要在前面加上三个点:…如下:function func(a,...rest){ console.log(a); console.log(rest)...原创 2021-01-07 16:58:33 · 629 阅读 · 0 评论 -
搜集js各种算法示例
(1)求一个数组,中的每个数字比它小的数量,比如arr[2,9,3],应该得到的结果是[0,2,1];解释:arr中第一个数字2最小,比它小的数字没有,所以个数是0,第二个数字9,比它小的个数是2个,所以返回2.思路:可以把这个数组进行一个排序,然后拿每个数字的索引。代码如下:function minx(nums) {//新建一个数组arr,把当前数组nums复制给它。 let arr = nums.concat([]); //对数组arr进行排序,从原创 2021-01-07 15:54:19 · 166 阅读 · 0 评论 -
js正则表达式 RegExp
RegExp 对象简介:用于规定在文本中检索的内容。表示正则表达式,它是 对字符串执行模式匹配 的强大工具。详解:RegExp 是正则表达式的缩写。当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。您可以规定字符串中的检索位置,以及要检索的字符类型,等等。RegExp 对象用于存储检索模式。通过 new 关键词来定义 RegExp 对象。以下代码定义了名为 pa原创 2020-10-27 16:45:02 · 550 阅读 · 0 评论 -
async await异步请求
先理解同步和异步,异步和同步的区别就在于:同步:会阻塞后续代码的执行异步:不会阻塞代码执行使用async await进行异步处理。1.深入理解await与asyncasyncasync作为一个关键字放在函数的前面,表示该函数是一个异步函数,意味着该函数的执行不会阻塞后面代码的执行 异步函数的调用跟普通函数一样. async function asyFn(){ return "hello"; } console.log(asyFn()); console.log("我在异步后原创 2020-08-19 16:03:40 · 3614 阅读 · 0 评论 -
数组基础
作用:Array对象用于在单个变量中存储多个值。属性获取数组长度,使用length属性,例如x.length;1.获取数组元素个数及通过下标获取某个元素。使用下标获取,例如x[0]获取数组x的第一个元素,x[x.length-1]获取数组的最后一个元素。创建数组var arr=new Array("a","b","c");console.log(arr);//["a", "b", "c"]var f=['a','b',123];console.log(f);//["a", "b", 12原创 2020-06-02 15:15:51 · 245 阅读 · 0 评论 -
this,call(),apply()用法
call()方法和apply()方法作用:每个函数都包含两个非继承而来的方法:call()方法和apply()方法。这两个方法的作用是一样的。都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。...原创 2020-01-10 16:27:42 · 414 阅读 · 0 评论 -
模板字符串(` `)
模板字符串(` `)作用:以反引号( ` )表示普通的字符串,也可以表示多行字符串,同时还可以插入变量(代替传统的加号拼接)。使用${}表示字符串中的变量。实例:let name = "小芳";let age = 13;//传统写法let str1 = '名字' + name + '年龄' + age;console.log(str1);//名字小芳年龄13//使用模板字符串写法...原创 2020-01-08 14:54:47 · 662 阅读 · 0 评论 -
解构赋值
解构赋值作用:解构赋值是对赋值运算符的扩展。他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。主要是为对象和数组进行解构。注:解构的源,解构赋值表达式的右边部分。解构的目标,解构赋值表达式的左边部分。数组解构实例,数组的解构:let [a,b,c]=[1,2,3];console.log(a);//1console.log(b);//2console.log...原创 2020-01-08 11:57:04 · 199 阅读 · 0 评论 -
扩展运算符,剩余参数...rest,arguments
扩展运算符作用:用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中。该运算符主要用于函数调用。let bar={a:1,b:2};let b={...bar}console.log(b);//{a: 1, b: 2}上面方法实际上等价于:let bar={a:1,b:2};let b=Object.assign({},bar);console.log(b);//{a: 1,...原创 2020-01-07 17:31:42 · 842 阅读 · 0 评论 -
let,const,var
let作用:定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。实例let a = 1;if (a < 2) { let b = 3; console.log(a + 1);}console.log(b);//报错,不能跨域访问,因为声明的变量b在if语句中const作用:用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能...原创 2020-01-07 16:04:00 · 279 阅读 · 0 评论 -
this
this箭头函数看上去是匿名函数,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。使用 箭头函数,this 将不会受到影响,可以直接用this调用父级的this。回顾前面的例子,由于JavaScript函数对this绑定的错误处理,下面的例子无法得到预期结果:var obj = { birth: 1990, getAge: fu...原创 2020-01-07 15:37:14 · 923 阅读 · 0 评论 -
箭头函数
箭头函数作用:=>箭头函数不只是关键字function的简写,他还带来了其他好处,箭头函数与包围它的代码共享一个this,能帮你更好的解决this的指向问题,比如var self=this或var that=this类似这种引用外围this的模式,如果借助=>箭头函数,就不需要引用这种模式了。箭头函数相当于匿名函数,简化了函数定义。注意:箭头函数有两种格式:第一种:箭头函数只包含...原创 2020-01-07 11:30:54 · 163 阅读 · 0 评论 -
while和do...while
while只要指定条件为 true,循环就可以一直执行代码。While 循环会在指定条件为真时循环执行代码块。语法:while (条件){需要执行的代码}实例本例中的循环将继续运行,只要变量 i 小于 5:while (i<5) { x=x + "The number is " + i + "<br>"; i++; }提示:如果您忘记增加条件...原创 2020-01-06 14:07:12 · 222 阅读 · 0 评论 -
for...of
for…offor…of读取的是键值,如下例子:var m=["a","b","c"];for(var i of m){ console.log(i);//打印结果为a b c}注:for/of不能遍历对象,会报错。与其他遍历语法的比较for…in循环有几个缺点①数组的键名是数字,但是for…in循环是以字符串作为键名“0”、“1”、“2”等等。②for…in循环不仅...原创 2020-01-06 14:05:45 · 120 阅读 · 0 评论 -
for...in
for…infor…in 语句用于对数组或者对象的属性进行循环操作。for … in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。遍历顺序有可能不是按照实际数组的内部顺序,使用for in会遍历数组所有的可枚举属性,包括原型。例如上栗的原型方法method和name属性,所以for in更适合遍历对象,不要使用for in遍历数组。for-in 循环主要用于遍历对象,...原创 2020-01-06 14:04:33 · 2576 阅读 · 0 评论 -
for循环
for循环作用:循环可以将代码块执行指定的次数。如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。语法for (语句 1; 语句 2; 语句 3){被执行的代码块}参数说明语句 1 在循环(代码块)开始前执行语句 2 定义运行循环(代码块)的条件语句 3 在循环(代码块)已被执行之后执行实例实例:var p=0;for (var i = ...原创 2020-01-06 13:57:35 · 229 阅读 · 0 评论 -
find()和findIndex()
find()作用:它会在数组里面找,找到第一个符合条件的元素,它就立即返回当前元素,不会继续网下找,如果数组中的所有元素都不符合条件,则返回undefined。返回通过测试(函数内判断)的数组的第一个元素的值。为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 ...原创 2019-12-27 17:19:17 · 1200 阅读 · 0 评论 -
filter()
filter()作用:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。注意: filter() 不会对空数组进行检测。注意: filter() 不会改变原始数组。语法array.filter(function(currentValue,index,arr), thisValue)参数说明:参数1:function(currentValue, index,a...原创 2019-12-27 16:50:49 · 5197 阅读 · 0 评论 -
some()
some()作用:用于检测数组中的元素是否满足指定条件(函数提供)。会依次执行数组的每个元素:如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。注意: some() 不会对空数组进行检测。注意: some() 不会改变原始数组。语法array.some(function(currentValue,index,arr),thisValue)参数说明:参数1...原创 2019-12-27 16:03:24 · 6380 阅读 · 0 评论 -
every()
every()作用:用于检测数组所有元素是否都符合指定条件(通过函数提供)。测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。注意:若收到一个空数组,此方法在一切情况下都会返回 true。如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。注意: every() 不会对空数组进行检...原创 2019-12-02 18:40:05 · 2714 阅读 · 0 评论 -
map()
map()作用:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map()方法按照原始数组元素顺序依次处理元素。注意:map()不会对空数组进行检测,不会改变原始数值,而是返回一个新数组。语法说明array.map(function(currentValue,index,arr),thisValue);参数说明:参数一:function(currentValue,in...原创 2019-12-02 10:25:24 · 1190 阅读 · 0 评论 -
forEach()
forEach()作用:用于调用数组的每个元素,并将元素传递给回调函数。注意: forEach() 对于空数组是不会执行回调函数的。实例原创 2019-12-02 10:10:34 · 1705 阅读 · 2 评论 -
splice()
splice()作用:通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。描述:如果添加进数组的元素个数不等于被删除的元素个数,数组的长度会发生相应的改变。注:该方法会改变数组的内容和长度。语法array.splice(start[, deleteCount[, item1[, item2[, ...]]]])概括:array.sp...原创 2019-11-19 11:51:27 · 3419 阅读 · 0 评论 -
reverse(),sort()
reverse()作用:将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。语法arr.reverse()返回值:颠倒后的数组。实例let arr=['a','b','c','d'];arr.reverse();console.log(arr);//["d", "c", "b", "a"]sort()作用:...原创 2019-11-19 11:25:16 · 246 阅读 · 0 评论 -
push()
push()作用:将一个或多个元素添加到数组的末尾,并返回该数组的新长度。语法arr.push(element1, ..., elementN)参数:elementN:被添加到数组末尾的元素。返回值:当调用该方法时,新的 length 属性值将被返回。实例let a=['a','b','c','d'];a.push('haha','niuniu');console.lo...原创 2019-11-19 11:10:33 · 3888 阅读 · 0 评论 -
pop(),shift()
pop()作用:从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。语法没有参数。返回值:从数组中删除的元素(当数组为空时返回undefined)。实例let a=["apple","banana","pear","orange"];a.pop();console.log(a);//["apple", "banana", "pear"]shift()作用:从数...原创 2019-11-19 11:02:35 · 691 阅读 · 0 评论 -
fill()
fill()作用:用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。描述:用一个固定的值去覆盖数组中指定的元素。语法arr.fill(value[, start[, end]])参数value用来填充数组元素的值。start 可选起始索引,默认值为0。end 可选终止索引,默认值为 this.length。但是不包含终止索引的元素。返回值修改...原创 2019-11-19 10:39:58 · 615 阅读 · 1 评论 -
copyWithin()
copyWithin()作用:复制数组的一部分数据覆盖到数组的另一个位置。并返回数组,但是不会改变原数组的长度。注:copyWithin()会修改数组,但是不会修改数组的长度。语法arr.copyWithin(target[, start[, end]])参数说明概括:copyWithin(a,b,c)一共3个参数,第1个参数a表示目标覆盖的开始索引位置。第2个参数b表示开始...原创 2019-11-19 10:23:01 · 2323 阅读 · 10 评论