diff --git "a/30\345\220\264\350\266\205/\344\275\234\344\270\232/10.10\346\225\260\347\273\204\344\275\234\344\270\232.md" "b/30\345\220\264\350\266\205/\344\275\234\344\270\232/10.10\346\225\260\347\273\204\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..2b347c14228116e593eec1138b47d1a237be27a1 --- /dev/null +++ "b/30\345\220\264\350\266\205/\344\275\234\344\270\232/10.10\346\225\260\347\273\204\344\275\234\344\270\232.md" @@ -0,0 +1,78 @@ +``` +var text ='I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.' +//将上述字符串去除标点空格后统计有多少个单词 +for(var i=0;iarr[j+1]) { + [arr[j],arr[j+1]]=[arr[j+1],arr[j]] + } + } + } +console.log(arr); + +2.将数组的单词全转为大写,要求 使用箭头函数 +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +const receives =countries.map((item) => item.toUpperCase()) +console.log(receives); +``` + diff --git "a/30\345\220\264\350\266\205/\347\254\224\350\256\260/10.10\346\225\260\347\273\204\347\254\224\350\256\260.md" "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/10.10\346\225\260\347\273\204\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..841122f86e3bca636b0cd5bd5f8fb82c954662ff --- /dev/null +++ "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/10.10\346\225\260\347\273\204\347\254\224\350\256\260.md" @@ -0,0 +1,78 @@ +## 一、数组 + +向数组中添加元素 语法:数组[索引]=值 + +读取数组中的元素 语法:数组[索引] 如果读取不存在的索引,他不会报错而是返回undefined + +### 二、创建数组 + +使用字面量来创建数组 语法:var 数组名 = [1,2,3.... ] 使用字面量创建数组时,可以在创建时就指定数组中的元素 + +使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作为构造函数的参数传递 元素之间用“,”隔开 + +### 三、数组对象属性 + +获取数组的长度 可以使用length属性来获取数组的长度(元素的个数) 语法:数组.length + +对于连续性的数组,使用length可以获取到数组的长度(元素个数) 对于非连续性的数组,使用length会获取到数组的最大的索引+1(尽量不要使用非连续性数组) + +length修改: 如果修改的length大于原长度,则多出来部分会空出来 如果修改后的length小于原长度,则多出来的部分会被删除 + +向数组最后一个位置添加元素 语法:数组[数组.length]=值 + +### 四、数组对象方法 + +#### 1.push() + + 该方法可以向数组的末尾添加一个或多个元素,并且返回数组的新长度 可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾 该方法会将数组新的长度作为返回值返回 + +#### 2.pop() + + 该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回 + +#### 3.unshift() + + 向数组开头添加一个或多个元素,并返回新的数组长度 + +#### 4.shift() + + 可以删除数组的第一个元素,并将被删除的元素作为返回值返回 + +#### 5.slice() + + 用法:const Arr1 = arr.slice(start,end) 可以用来从数组中提取指定元素 该方法不会改变原数组,而是将截取到的元素封装到一个新的数组中返回 参数: 1.截取开始的位置的索引(包含开始位置索引) 2.截取结束的位置的索引(不包含结束位置索引) + +#### 6.splice() + + 用法:const Arr1 = arr.splice(start,count) 可以用于删除数组中的指定元素 使用splice()会影响原数组,会将指定元素从原数组中删除 并将被删除的元素作为新数组返回 参数: 第一个,表示开始位置的索引 第二个,表示删除的数量 第三个及以后: 可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边 + +#### 7.concat() + + 用法:const Arr1 = arr.concat(arr2,arr3,“元素”,。。。) 可以连接两个或多个数组,并将新的数组返回 该方法不会对原数组产生影响 + +#### 8.join() + + 该方法可以将数组转换为一个字符串 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回 在join()中可以指定一个字符串作为参数,这个字符串将会称为数组中元素的连接符 如果不指定连接符,则默认使用“,”作为连接符 + +### 五、数组遍历 + +所谓的遍历数组,就是将数组中所有的元素都取出来 + +一般我们都是使用for循环去遍历数组, JS中还为我们提供了一个方法用来遍历数组:forEach( ) + +forEach( )方法需要一个函数作为参数 + +``` +const arr2 = [1,2,3,4,5,6]; +arr2.forEach( + function (item,index,arr){ + item + 2 + + console.log(item); + console.log('下标'+index); + console.log(arr); + arr[index] = item + 2 + } +) + console.log(arr2); +``` \ No newline at end of file diff --git "a/30\345\220\264\350\266\205/\347\254\224\350\256\260/10.11\345\207\275\346\225\260\347\254\224\350\256\260.md" "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/10.11\345\207\275\346\225\260\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..51c5674808c0859d11aeb92942795fca1a9ca498 --- /dev/null +++ "b/30\345\220\264\350\266\205/\347\254\224\350\256\260/10.11\345\207\275\346\225\260\347\254\224\350\256\260.md" @@ -0,0 +1,149 @@ +## 函数 + +#### 函数声明 + +``` +//声明 +function functionName() { + 执行的代码 +} +//调用 +functionName() +``` + +## 使用 + +``` +//1.两数相加 +function GetSum(n1,n2) { + return n1+n2 +} +console.log(GetSum(5,6)); +``` + +## 默认值 + +``` +function NamePut(name='小红'){ + console.log('欢迎'+name); +} +//不带参调用 +NamePut(); +//带参调用 +NamePut('小黑'); //会覆盖 +//默认值改为箭头函数 +var receive =(name='小红')=>console.log('欢迎'+name); +receive('小黑'); +``` + +## 返回多个值 + +``` +function GetName(name) { + let name_arr = name.split(''); + return name_arr; +} +let[x,y,z] = GetName('小红'); +console.log('姓名:'+x+' 名字+'+y+z); +``` + +## arguements带不确定个参数 + +``` +function sum(){ + let sum = 0; + for(var e of arguments){ + sum = sum +e; + } + return sum; +} +console.log(sum(1,2,3,4,5,6,7)); //结果:28 +``` + +## ...args带不确定个参数 + +``` +//...args:代表传入的是不确定个数的值 + +function sum(...args){ + let sum = 0; + for(var e of args){ + sum = sum + e; + } + return sum; +} + +console.log(sum(1,2,3,4,5,6,7)); //结果:28 +``` + +## 表达式函数 + +``` +const square = function(n) { + return n * n + } + var mn = square(5) + console.log(mn); +``` + +## 箭头函数(匿名函数) + +``` +//类似于lambda表达式 +//const FunctionName = (接收的参数) => (方法体) + +/1.常规 +var receive = function (){ + console.log('这是一个匿名函数'); +} +//调用 +receive(); + +/1.箭头函数 +const receive1 =() =>console.log('这是一个匿名函数'); +//调用 +receive1(); +/2.如果方法体只有一个返回语句 +const arrowFunc1 = (n1,n2) => { + let result = n1 + n2; + return result + } +console.log('结果是:'+arrowFunc1(5,6)); + +/2.箭头 +const arrowFunc2 =(n1,n2) =>n1+n2; +console.log(arrowFunc2(5,6)); +/3.map +/常规 +const arra = [1,2,9,5,6,7] +const arr1 = arra.map(function(item){ + return item+2; +}) +console.log(arr1); + +/箭头 +const arr1s = arra.map((item) =>item+2); +console.log(arr1s); +/4.reduce +/常规 +const arra = [1,2,9,5,6,7] +const receive =arra.reduce(function (n1,n2) + return item*2 +}) +console.log(receive); +/箭头 +var receive1 =arra.reduce((n1,n2) =>(n1+n2)*2); +console.log(receive1); +/5.filter +const new_arra2 = arra.filter( (item) => item%2==0 ) +console.log(new_arra2); +/6.接收多个参数 +var receive =(...args)=>{ + let sum = 0; + for(var e of ...args){ + sum = sum + e; + } + return sum; +} +console.log(receive(1,2,3,4,5,6,7)); +``` \ No newline at end of file