从零开始学前端:程序猿小白也可以完全掌握!—今天你学习了吗?(JS)
复习:从零开始学前端:作用域、执行顺序 — 今天你学习了吗?(JS:Day9)
前言
毕设前端差不多了,可是后端才是重头戏啊喂!好难好难~
第十节课:字符串和数组的方法
一、字符串的方法
1.定义/声明方式
var str1 = 'candy';
var str2 = String('123');
var str3 = new String('abc123');
console.log(str1)
console.log(str2)
console.log(str3)
console.log(typeof str3);
运行:
2.length长度
var str1 = 'coisini';
var str2 = '5201314';
console.log(str1.length);
console.log(str1[1]);
运行结果:
3.charAt返回指定索引的字符串(输入下标返回字符)
索引即下标
var str1 = 'abcdefg'
console.log(str1.charAt(3));
效果:
4.concat字符串拼接/合并字符串
语法: str.concat(str,str,…); 字符串拼接 用于把一个或多个字符串连接到一块,返回拼接好的字符串
var str1 = String('Coisini')
var str2 = new String('Jojo')
console.log(str1 + str2);
console.log(str1.concat(str2));
console.log(str1.concat(str2, 'pupy', 'crazy', 'loyal'));
效果:
5.indexOf查找字符串(输入字符返回下标)
查找字符串,返回查找字符串首次出现的位置;
var str = '5201314'
console.log(str.indexOf('1'))
console.log(str.indexOf('1', 4))
console.log(str.indexOf('5', 2))
效果: 用法(了解即可,不详解):
<div id="box" class="wrap on active"></div>
<div id="box" class="wrap on active"></div>
console.log(box.className.indexOf('on'));
效果: 2. lastIndexOf('0')
var str = '5201314'
console.log(str.lastIndexOf('1'))
效果:
6.charCodeAt(index)返回指定索引的ASCII编码(了解即可,不详解)
var str = '52011314'
console.log(str.charCodeAt(1))
效果:
7.formCharCode:返回指定ASCII编码的字符串(了解即可,不详解)
console.log(String.formCharCode(53))
console.log(String.formCharCode(53, 50, 48, 49, 51, 49, 52))
8.substring:截取字符串(根据下标截取字符串,左闭右开)和substr
语法:
substring(start,end)截取字符串:截取到的字符串时前闭后开形式的 substr(start,length)截取字符串
var str2 = '5201314'
console.log(str2.substring(1, 5))
console.log(str2, sunstr(0, 7))
效果:
9.slice截取字符串(根据下标截取字符串,前闭后开)
截取字符串,从start开始,截止到end前,不包含end,前闭后开;
console.log(str2.slice(0, 2))
console.log(str2.slice(0, -2))
效果:
10.str.toLocaleUpperCase():小写转大写; str.toLocaleLowerCase():大写转小写
var str1 = 'coisini'
var str4 = 'CRAZY WORLD'
console.log(str1.toUpperCase());
console.log(str1.toLocaleUpperCase());
console.log(str4.toLowerCase());
console.log(str4.toLocaleLowerCase());
效果:
11.match匹配的值:正则用的多
str.match(value/RegExp)查找指定的值,返回匹配的值。未找到返回null,筝则可以找一个或多个表达式
var str3 = 'HAPPY';
console.log(str3.match('H'));
console.log(str3.match(/a/i));
console.log(str3.match('1'));
12.search返回检索字符串首次出现的位置;未找到返回-1
str.search(‘需要搜索的字符’)
var str1 = 'coisini'
var str2 = '5201314'
var str3 = new String('abc123')
console.log(str2.search('4'));
console.log(str2.search('8'));
13.replace替换:输入替换字符,返回替换后的字符串
str.replace(‘需要替换的字符’,‘替换后的字符’)
var str1 = 'coisini'
var str2 = '5201314'
var str3 = new String('abc123')
console.log(str2.replace('0', '1'))
console.log(str2.replace('8', '5'))
效果:
14.str.split()分割成字符串数组:去掉当前字符,然后数组输出其他字符组成的串
var str2 = '5201314'
console.log(str2.split('0', 5))
console.log(str2.split(' '))
console.log(str2.split(''))
效果:
二、Array()数组
1.定义/声明方式
var arr = []
var arr2 = Array(1, 2, 3)
consol.log(arr2);
var arr3 = Array(6)
var arr4 = new Array(1, 2, 3);
var arr5 = new Array(6);
2.length长度
var arr = [1, 2, 3, 4, 5, 0];
console.log(arr.length);
3.[]通过数组索引,访问值
console.log(arr[0])
arr[2] = 8888
console.log(arr);
4.在数组后面添加项
console.log(arr[arr.length] = 999)
console.log(arr)
5.concat数组拼接
console.log(arr.concat(arr2));
console.log(arr);
+号拼接展示:
var arr1 = Array(1, 2, 3)
var arr3 = new Array(666, 888);
var arr6 = arr1 + arr3
console.log(arr6)
效果: 是object类型
6.join:将数组拼接成字符串
arr.join(‘中间的连接词’)
var str = "Hello everyone!"
var arr1 = str.split(' ');
console.log(arr1)
var arr = arr1.join('^')
console.log(arr)
console.log(arr1.join(' '));
console.log(arr1.join(''))
效果:
7.indexOf查找数组里面的数据
查找字符串,返回查找字符串首次出现的位置;
var arr5 = [5, 2, 0, 1, 3, 1, 4]
console.log(arr5.indexOf(0))
console.log(arr5.indexOf(0, 3));
var arr = [1, 2, 3, 4, 5, 0, [123]];
console.log(arr.indexOf([123]))
效果:
8.delete删除项
var arr3 = new Array(666, 888);
console.log(arr3)
delete arr3[0];
console.log(arr3)
arr3.length = 0;
console.log(arr3);
效果:
9.unshift()向数组的头部添加一个或更多元素,并返回新的长度
var arr = [5, 2, 0, 1, 3, 1, 4]
console.log(arr.unshift('coisini'))
console.log(arr);
效果:
10.push(item 1,item 2, …)向数组的尾部添加一个或更多元素,并返回新的长度
var arr = [5, 2, 0, 1, 3, 1, 4]
arr.push('coisini');
console.log(arr);
console.log(arr[arr.length] = 999);
console.log(arr);
console.log(arr[arr.length - 1])
效果:
11.shift()删除数组的第一个元素(返回删除对象)
var arr = [5, 2, 0, 1, 3, 1, 4];
console.log(arr.shift());
console.log(arr);
效果:
12.pop()删除数组的最后一个元素(返回删除对象)
var arr = [5, 2, 0, 1, 3, 1, 4];
console.log(arr.pop());
console.log(arr);
效果:
三、arr.splice:数组的增加替换删除(重难点)
(index,how,item1,item2)删除 替换 添加,返回删除项 — 修改数组 arr,splice(下标,长度)
index 删除、替换、添加的位置
how 删除个数,0不删除
item 添加项
不进行处理,返回值为空:
var arr = [5, 2, 0, 1, 3, 1, 4];
var arr1 = arr.splice()
console.log(arr1);
删除:
var arr = [5, 2, 0, 1, 3, 1, 4];
var narr = arr.splice(1, 5);
console.log(narr);
console.log(arr);
替换:
var arr = [5, 2, 0, 1, 3, 1, 4];
var narr = arr.splice(1, 2, 'hello', 'world');
console.log(narr);
console.log(arr);
添加:
var arr = [5, 2, 0, 1, 3, 1, 4];
var narr = arr.splice(1, 0, 'hello', 'world');
console.log(narr);
console.log(arr);
效果:
四、数组的排序:sort和map(重难点)
arr.sort() :数组的高阶函数【回调函数】:一个函数作为两外一个函数的参数
var arr = [520, 66, 666, 250, 409, 404, 200]
arr.sort(function (a, b) {
console.log(a)
console.log(b)
});
a: b:
1. return的值不同数组的变化不同:
倒序排列:return的值 < 0的时候,会进行倒序处理;
a-b: 排序【小至大】递增
b-a:排序【大至小】递减
倒序:
var arr = [520, 66, 666, 250, 409, 404, 200]
var arr1 = arr.sort(function (a, b) {
return -1
});
console.log(arr1)
效果:
递增:
var arr = [520, 66, 666, 250, 409, 404, 200]
var arr1 = arr.sort(function (a, b) {
return a - b
});
console.log(arr1)
效果:
递减:
var arr = [520, 66, 666, 250, 409, 404, 200]
var arr1 = arr.sort(function (a, b) {
return b - a
});
console.log(arr1)
效果:
2. arr.reverse()数组的反转:
console.log(arr)
console.log(arr.reverse())
效果:
2. arr.map数组的遍历:
语法:
arr.map(function (value, index, arrSelf) {
})
value:
Iindex: arrSelf:
map内可进行处理:
var arr1 = arr.map(function (value, index, arrSelf) {
return value * 2
})
console.log(arr)
console.log(arr1)
效果:
3. arr.map数组的应用:
var oBtn = document.getElementsByClassName("btn")
console.log(oBtn)
var arr = [5, 2, 0, 1, 3, 1, 4]
var arr1 = [...oBtn]
var arr2 = arr1.forEach(function (item, index, arrSelf) {
item.onclick = function () {
alert(index)
}
})
截图: 输出button的下标
五、数组的方法:filter和find
区别:
filter :过滤满足条件的所有值 find :过滤数组,只返回满足条件的第一项
filter:过滤数组中的数字
var arr = [520, false, null, 0, function fn() { }, '888']
var fils = arr.filter(function (val, idx, arrself) {
return typeof val === 'number'
})
console.log(fils)
效果:
find:过滤数组,只返回满足条件的第一项
var arr = [520, false, null, 0, function fn() { }, '888'];
var num = arr.find(function (val, idx, arrself) {
return val
})
console.log(num)
效果:
预习:对象序列化与反序列化、冒泡排序、数组去重
|