diff --git "a/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.10js\347\254\254\344\272\214\350\212\202\350\257\276.md" "b/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.10js\347\254\254\344\272\214\350\212\202\350\257\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..86ebcd800ba35e0769b41d2db4576beeafb114ad --- /dev/null +++ "b/09\351\231\210\347\203\275\346\235\260/\344\275\234\344\270\232/10.10js\347\254\254\344\272\214\350\212\202\350\257\276.md" @@ -0,0 +1,152 @@ +``` +var text = + +'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.' +//将上述字符串去除标点空格后统计有多少个单词 + +const arr1 = text.split(' '); + +console.log(arr1); + +const arr2 =arr1 + +for (let index = 0; index < arr1.length; index++) { + + arr2[index] = arr1[index].replace(',','') + + arr2[index] = arr1[index].replace('.','') + +} + +console.log(arr2); + +console.log(arr2.length); +const arr = [87,85,74,70,43,59,65] +// 0.将元素65 与43 调换位置 + +var a; + +var b; + +for (let index = 0; index < arr.length; index++) { + + if (arr[index]==65) { + + a=index; + + } + + if (arr[index]==43) { + + b=index; + + } + +} + +var c = arr[a] + +arr[a] = arr[b] + +arr[b] = c + +console.log(arr); +// 1.移除第一个元素87,并在开头添加 元素86 + +arr.shift() + +arr.unshift(86) + +console.log(arr); +// 2.移除最后一个元素43, 并在末尾添加1 + +arr.pop() + +arr.push(1) + +console.log(arr); +// 3.在 70 65 之间插入 元素 68 + +var a; + +var b; + +for (let index = 0; index < arr.length; index++) { + + if (arr[index]==70) { + + a=index; + + } + + if (arr[index]==65) { + + b=index; + + } + +} + +var c = 68 + +const arr1 =arr.map( + + function(item){ + + const d = slice(0,a)+c+slice(b,arr.length-1) + + return d + + } + +) + +console.log(arr); +// 4.删除元素65 + +for (let index = 0; index < arr.length; index++) { + + if (arr[index] == 65) { + + delete arr[index] + + } + +} + +console.log(arr); +// 5.使用map返回一个新的数组new_arr,要求新数组new_arr比原来数组大2 + +console.log(arr); + +const new_arr =arr.map( + + function(item){ + + return item+2 + + } + +) + +console.log(new_arr); +// 6.筛选数组new_arr返回new_arr1,要求new_arr1: 能被2整除 + +console.log(new_arr); + +const new_arr1 =new_arr.filter( + + function(item){ + + if (item%2==0) { + + return item + + } + + } + +) + +console.log(new_arr1);xxxxxxxxxx 1.第一个是数组的每一项值(必选) var obj = {           '1' : 'abc',           '3' : 100,           '5' : 'hello'       }       var arr = [1, 3, 5];       arr.forEach(function(item){ },obj);//返回值: 1 3 52.第二个是数组下标(可选) var obj = {           '1' : 'abc',           '3' : 100,           '5' : 'hello'       }       var arr = [1, 3, 5];       arr.forEach(function(item, index, self){           console.log(index);       },obj);//返回值:0 1 23.第三个是原数组(可选) var obj = {           '1' : 'abc',           '3' : 100,           '5' : 'hello'       }       var arr = [1, 3, 5];       arr.forEach(function(item, index, self){           console.log(self);       },obj);//返回值:[1,3,5] [1,3,5] [1,3,5]        4.forEach()第二个参数对象   var obj = {           '1' : 'abc',           '3' : 100,           '5' : 'hello'       }       var arr = [1, 3, 5];       arr.forEach(function(item, index, self){           console.log(this);       },obj);//让回调函数中的this指向 arr       //返回值{'1' : 'abc','3' : 100, '5' : 'hello'} {'1' : 'abc','3' : 100, '5' : 'hello'} {'1' : 'abc','3' : 100, '5' : 'hello'} +``` diff --git "a/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.10js\347\254\254\344\272\214\350\212\202\350\257\276.md" "b/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.10js\347\254\254\344\272\214\350\212\202\350\257\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..c91cd4335543926f15c09402168a22831f124620 --- /dev/null +++ "b/09\351\231\210\347\203\275\346\235\260/\347\254\224\350\256\260/10.10js\347\254\254\344\272\214\350\212\202\350\257\276.md" @@ -0,0 +1,269 @@ +## 数据类型 + +``` +null , undefined + +undefined: 声明未赋值 + +null: 空指针引用 +``` + +### 字符串 + +#### 1.有下标,有长度 + +``` +console.log(str[str.length-1]); +``` + +#### 2.split() + +``` +var arr = str.split('a') //以a分割 +console.log(arr); +``` + +#### 3.substr(start,length):从下标start开始截取length个字符 + +``` +var str = 'Java Script' +console.log(str.substr(5,6)); +``` + +#### 4.substring(start,end): 从下标start开始,end结束,不包含end + +``` +var str = 'Java Script' +console.log(str.substring(5,11)); +``` + +#### 5.str.trim():删除空格 + +``` +var str = ' Java Script ' +console.log(str.trim()); +``` + +#### 6.改变字符串的数据类型 + +``` +var str_num= '6' +var n = parseInt(str_num) +Number(str_num) +var n = +str_num + +console.log(typeof str_num); +console.log(typeof n); +``` + +### 数组 + +#### 1.数组的定义 + +``` +数组: const arr = [] + const arr = [4,5,6,7,8,9]; + +读取长度下标 +长度 下标 +console.log(arr.length); + +可直接修改对应下标下的内容元素 +arr[2] = 60; +``` + +#### 2.join var str = arr.join('#') + +在数组的每个单位之间插入数据 + +``` +string split()-- > 数组 --> join('') + +console.log(str); +``` + +#### 3.concat ()方法用于连接两个或多个数组 + +``` +const firstList = [1, 2, 3]; +const secondList = [4, 5, 6]; +const thirdList = firstList.concat(secondList); +console.log(thirdList); +``` + +#### 4.slice() + +可以用来从数组中提取元素 - 该方法不会改变元素数组,而是将截取到的元素封装到一个新数组 + +``` +1.截取开始的位置的索引,包含开始索引 +2.截取结束的位置的索引,不包含结束索引 + 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素 + 索引可以传递一个负值,如果传递一个负值,则从后往前计算 + 负-1 倒数第一个 + 负-2 倒数第二个 + +slice():表示切片,参数个数:0 1 2 返回一个数组对象 + +const arr1 = arr.slice(2,4); +// console.log(arr1); + + +var result = arr.slice(0,2); +result = arr.slice(1,-2); + +console.log(result); +``` + +#### 5.[splice](https://gitee.com/link?target=https%3A%2F%2Fso.csdn.net%2Fso%2Fsearch%3Fq%3Dsplice%26spm%3D1001.2101.3001.7020)() + +可以用于删除数组中的指定元素 使用splice()**会影响到原数组**,会将指定元素从原数组中删除 并将被删除的元素作为返回值返回 + +``` +第一个,表示开始位置的索引 +第二个,表示删除的数量 +第三个及以后.. +可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边 + +var arr = ["孙悟空","猪八戒","沙和尚","熊大","熊二","光头强"]; + + result = arr.splice(3,0,"吉吉国王","毛毛"); + + console.log(arr); + // console.log(result); + +splice(): 接收 0 2 多 个参数 表示移除,替换元素 +splice(start,end):左右都闭合,都能取到 +const arr2 = [1,2,3,4,5,6]; +arr2.splice(1,3) +arr2.splice(1,3,2,2,2); //(1,3):移除下标1-3的元素,(2,2,2):要替换的元素 +console.log(arr2); +``` + +#### 6.push:末尾添加; unshift:开头添加;pop:末尾删除 ;shift:开头删除 + +``` +arr2.push(7) +arr2.unshift(6) +arr2.pop() +arr2.shift() +arr2.reverse() +console.log(arr2); +``` + +#### 7.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); +``` + +#### 8.map:为数组中每个元素调用对应函数,返回一个新的数组 + +function声明一个函数 + +``` +const arr3 = arr2.map( + function(item){ + return item*2 + } +) +``` + +#### 9.filter(过滤):筛选符合条件的元素,返回一个新数组 + +``` +const arr4 = arr2.filter( + function (item) { + if(item%2==0){ + return item + } + } +) +``` + +#### 10.reduce():归纳汇总 + +``` +// 1 2 3 4 5 6 +const varr = arr2.reduce( + function (v1,v2){ + return v1*v2 + } +) +console.log(varr); +``` + +#### 11.const a = 5 定义常量.不能修改 + +#### 12.every()检测数组中每一个元素是否符合要求,返回flash或者true + +``` +const ismatch=arr2.every( + function(item){ + return item>3 + } +) +console.log(isMatch) +如果数组内全部元素都符合条件则返回true +``` + +### 13.拓展(forEach) + +1.forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。 2.forEach()有三个参数,第一个是function()函数,第二个是对象; 3.函数里面有三个参数,第一个是数组的每一项值(必选),第二个是数组下标(可选),第三个是原数组(可选) 4.forEach()第二个参数对象,使第一个参数函数的this指向对象 + +``` +1.第一个是数组的每一项值(必选) + var obj = { + '1' : 'abc', + '3' : 100, + '5' : 'hello' + } + var arr = [1, 3, 5]; + arr.forEach(function(item){ },obj);//返回值: 1 3 5 + +2.第二个是数组下标(可选) + var obj = { + '1' : 'abc', + '3' : 100, + '5' : 'hello' + } + var arr = [1, 3, 5]; + arr.forEach(function(item, index, self){ + console.log(index); + },obj);//返回值:0 1 2 + +3.第三个是原数组(可选) + var obj = { + '1' : 'abc', + '3' : 100, + '5' : 'hello' + } + var arr = [1, 3, 5]; + arr.forEach(function(item, index, self){ + console.log(self); + },obj);//返回值:[1,3,5] [1,3,5] [1,3,5] + + +4.forEach()第二个参数对象 + var obj = { + '1' : 'abc', + '3' : 100, + '5' : 'hello' + } + var arr = [1, 3, 5]; + arr.forEach(function(item, index, self){ + console.log(this); + },obj);//让回调函数中的this指向 arr + //返回值{'1' : 'abc','3' : 100, '5' : 'hello'} {'1' : 'abc','3' : 100, '5' : 'hello'} {'1' : 'abc','3' : 100, '5' : 'hello'} +```