Javascript
周公子よ
菜菜菜菜鸟前端端端端
展开
-
嵌套数组去重排序
本文章用的是tslet arr = [1,[2,[3,[4,[5,5,8,[8,7,[9,0,10,5,[2,4]]]]]]]]let newArr:number[] = []const b = (val:any)=>{ if(typeof val === 'object'){ for(let i =0;i<val.length;i++){ b(val[i]) } }else{ newArr.pus.原创 2022-04-19 16:34:38 · 311 阅读 · 0 评论 -
async、await、promise、setTimeout关于宏任务和微任务
async、await、promise、setTimeout关于宏任务和微任务原创 2022-04-15 10:37:34 · 3345 阅读 · 8 评论 -
数组的各种操作方法!!!
let arr = [[1,2,3],[4,5,6]];console.table(arr);//浏览器控制台输出的是一个表格的二维数组let arr1 = [1,2,3];let one = 0;let none = [];let arr2 = none.concat(one,arr1);//concat 会返回一个新的数组,不会改变原数组console.log(arr2);//...原创 2019-11-08 11:25:30 · 167 阅读 · 0 评论 -
ES6的const和let
let x = ‘global’{console.log(x)let x = 1; //let不能变量提升}var bar = 12;{console.log(bar);//暂时性死区:根据变量不能提升,变量由let声明,在声明之前都是死区,用就会报错(赶脚和变量不提升也有关系)let bar = 13;}{var a = 1;var a = 2;//var 可以这样声明两...原创 2019-07-23 15:27:33 · 87 阅读 · 0 评论 -
es6解构
/**解构:ES6允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称为解构本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。*/let [a] = [];let [b,c] = [1]console.log(a);//undefinedconsole.log(b,c,‘dddddd’);//1,undefined//解构不成功值会...原创 2019-07-29 16:07:01 · 93 阅读 · 0 评论 -
this与箭头函数
/** *this词法与箭头函数 */ var aa = (a)=>{ console.log(a); } aa(2); /** *这个东东叫箭头函数,是function的简写 */ var obj = { id: 'so cute', cute:function fun(){ console...原创 2019-06-26 16:36:26 · 324 阅读 · 0 评论 -
数组concat()方法
/*** concat()方法可以基于当前数组中的所有项创建一个新数组* 意思就是,先创建一个当前数组的副本,然后将接收到的参数添加到这个副本数组的末尾* 返回新构建的数组*/var arr = [1,2,3];console.log(arr.concat(4,5))//[1, 2, 3, 4, 5]var arr1 = [{name:1},{name:2}];console.lo...原创 2019-06-18 16:59:57 · 10608 阅读 · 0 评论 -
模块浅析
/** *模块浅析 */ function aa(){ var name = 'Saber'; var age = 20; function info(){ console.log(name); } function another(){ console.log(age); } return { ...原创 2019-06-25 09:52:57 · 120 阅读 · 0 评论 -
reverse()和sort()
/***JS里有两个直接用来重排序的方法,reverse()和sort()* reverse()会反转数组项的顺序*/var arr1 = [1,2,3];console.log(arr1.reverse())//[3,2,1]/***sort()方法,在默认情况下是升序排列数组项,* sort()方法会调用每个数组项的toString()方法,比较得到的字符串,已确定如何排序*...原创 2019-06-17 11:06:20 · 1832 阅读 · 0 评论 -
数组行为可以模拟栈和队列
/***数组可以表现为栈,栈是先进后出的数据结构,插入和移除只发生在一个位置* 数组提供了push()和pop()两个方法,方便实现类似栈的行为* push()接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的 长度* pop()从数组末尾移除最后一项,减少数组length值,然后返回移除的项*/var arr1 = [1,2,3];var len = arr1.pus...原创 2019-06-17 10:34:02 · 158 阅读 · 0 评论 -
JS数组浅析
/*JS的数组十分有趣,数组的每一项都能保存任何类型的数据,是任何哦* */var arr = [1,'JK',{name:'JQ'}]/*更有意思的是,数组的大小是可以动态调整的,随着数据的添加自动增长* */arr.push('newItem')alert(arr.length)//4/*另一种使用Array()构造函数来创建数组,可以传一个数字,代表了length的值,也...原创 2019-06-17 09:38:59 · 450 阅读 · 0 评论 -
闭包和循环
/** *循环和闭包 */ for (var i = 0; i <= 5; i++) { setTimeout(function timer(){ console.log(i);//输出6个6 },i*1000) } /** *上面的代码每一秒输出一个6,为什么呢? * 延迟的回调函数会在循环结束时才执行,所以会每...原创 2019-06-20 17:06:57 · 814 阅读 · 0 评论 -
闭包浅析
/** *闭包浅析 * 我在书本上找到的对闭包的定义为:函数可以记住并访问所在的词法作用域时,就产生了闭包 * 不管以何种手段将内部函数传递到所在的词法作用域以外,都会持有对原始定义作用域的引用。无论在何处执行这个函数。都会使用闭包。 * 闭包就是能够读取其他函数内部变量的函数 */ function fun(){ var a = 2; ...原创 2019-06-20 15:41:59 · 101 阅读 · 0 评论 -
使用方括号来访问属性
/*对象属性的访问方法有两种,一种是用点 . 来访问的,一种使用 [] 来访问的,这两种方法没有任何区别,但是 [] 语法的优点是可以通过变量来访问属性* */var obj = {"first name" : 'JK',"delete" : 'JQ'}/*上面的obj对象里的属性,一个是带空格的,这个时候用 . 来访问,就不可以了 * *///alert(obj.first...原创 2019-06-14 16:56:03 · 486 阅读 · 0 评论 -
with作用域浅析
/***浅析with* with会接收一个参数,with形成的作用域指的是接收的参数的作用域(with的作用是不需要重复引用对象本身就可以引用对象的多个属性)* */var obj1 = {a:1}function fun(obj){var a = 5;var b = 3;with(obj){a = 2;b = 1;c = 4;}console.log(a,'fff...原创 2019-06-19 09:40:51 · 338 阅读 · 0 评论 -
数组slice()方法和splice()方法
/***slice()方法接收两个参数,一个是起始位置,一个是结束位置* 可以只传一个起始位置,就会返回从起始位置到结尾的所有项* 他会返回起始位置和结束位置之间的项,包含起始位置,但是不包含结束位置*/var arr = [1,2,3,4,5,6,7,8,9,0];console.log(arr.slice(1))//[2, 3, 4, 5, 6, 7, 8, 9, 0]conso...原创 2019-06-19 09:05:46 · 10448 阅读 · 0 评论