一 Date对象
1 Date函数接收时间戳
date.getTime() date date.valueOf()//返回值 : date 的毫秒表示。返回值和方法 Date.getTime 返回的值相等。
Date.parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。 以上输出一串数字(1970年01月1日0点零分以来的毫秒数),该串数字可与随机数配合生成独特id
2 Date
1 Date对象的创建: new Date()
以下四种方法同样可以创建 Date 对象:
var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
2 Date 对象属性
constructor | 返回对创建此对象的 Date 函数的引用。 |
---|---|
prototype | 使您有能力向对象添加属性和方法。 |
3 Date对象方法
方法 | 描述 |
---|---|
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
getYear() | 已废弃。 请使用 getFullYear() 方法代替。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setTime() | setTime() 方法以毫秒设置 Date 对象。 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
setUTCSeconds() | setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。 |
setYear() | 已废弃。请使用 setFullYear() 方法代替。 |
toDateString() | 把 Date 对象的日期部分转换为字符串。 |
toGMTString() | 已废弃。请使用 toUTCString() 方法代替。 |
toISOString() | 使用 ISO 标准返回字符串的日期格式。 |
toJSON() | 以 JSON 数据格式返回日期字符串。 |
toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 |
toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
toLocaleString() | 据本地时间格式,把 Date 对象转换为字符串。 |
toString() | 把 Date 对象转换为字符串。 |
toTimeString() | 把 Date 对象的时间部分转换为字符串。 |
toUTCString() | 根据世界时,把 Date 对象转换为字符串。 |
UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 |
valueOf() | 返回 Date 对象的原始值。 |
二 数组对象
push():向数组的末尾添加一个或多个元素
定义和用法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
注意: 新元素将添加在数组的末尾。
注意: 此方法改变数组的长度。
提示: 在数组起始位置添加元素请使用 unshift() 方法。
数组中添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")
fruits 结果输出:
Banana,Orange,Apple,Mango,Kiwi
pop():移除最后一个数组元素
定义和用法
pop() 方法用于删除数组的最后一个元素并返回删除的元素。
注意:此方法改变数组的长度!
提示: 移除数组第一个元素,请使用 shift() 方法。
移除最后一个数组元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();
fruits 结果输出:
Banana,Orange,Apple
unshift() :将新项添加到数组起始位置:
定义和用法
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
注意: 该方法将改变数组的数目。
提示: 将新项添加到数组末尾,请使用 push() 方法。
将新项添加到数组起始位置:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");
fruits 将输出:
Lemon,Pineapple,Banana,Orange,Apple,Mango
shift():从数组中移除元素:
定义和用法
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
注意: 此方法改变数组的长度!
提示: 移除数组末尾的元素可以使用 pop() 方法。
从数组中移除元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()
fruits结果输出:
Orange,Apple,Mango
小练习:
// 练习1: 将数组第一个元素移动到数组最后
/* var arr = ['a', 'b', 'c'];
arr.push( arr.shift() );
console.log(arr); */
// 练习2: 将数组最后一个元素移动到数组最前面
var arr = ['a', 'b', 'c'];
arr.unshift( arr.pop() );
console.log(arr);
splice()方法:添加或删除数组中的元素:
定义和用法
splice() 方法用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。
语法
array.splice(index,howmany,item1,.....,itemX)
参数 Values
参数 | 描述 |
---|---|
index | 必需。规定从何处添加/删除元素。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。 |
howmany | 可选。规定应该删除多少元素。必须是数字,但可以是 "0"。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。 |
item1, ..., itemX | 可选。要添加到数组的新元素 |
返回值
Type | 描述 |
---|---|
Array | 如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。 |
数组中添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
fruits 输出结果:
Banana,Orange,Lemon,Kiwi,Apple,Mango
实例
移除数组的第三个元素,并在数组第三个位置添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
fruits 输出结果:
Banana,Orange,Lemon,Kiwi,Mango
实例
从第三个位置开始删除数组后的两个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2);
fruits 输出结果:
Banana,Orange
// 1 删除功能:例如删除数组中的bcd
var arr = ['a', 'b', 'c', 'd', 'e'];
/* var result = arr.splice(1, 3);
console.log(arr); //输出: [a,e]
console.log(result); //输出: [b,c,d] */
/* var result = arr.splice(2, 1);
console.log(arr, result); // [a,b,d,e]['c'] */
// 2 修改功能:例如将bc修改为xyz
/* var arr = ['a', 'b', 'c', 'd', 'e'];
var result = arr.splice(1, 2, 'x', 'y', 'z');
console.log(arr, result); */
// 3 新增功能:例如,在a后添加xyz
// - 注意:参数1应当设置为添加后第一个元素所处的索引值
// var arr = ['a', 'b', 'c', 'd', 'e'];
// var result = arr.splice(1, 0, 'x', 'y', 'z');
// console.log(arr);
// console.log(result); // []
slice方法:从已有的数组中返回选定的元素。
定义和用法
slice() 方法可从已有的数组中返回选定的元素。
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
注意: slice() 方法不会改变原始数组。
提示: 如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
实例
在数组中读取元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
citrus 结果输出:
Orange,Lemon
实例
使用负值从数组中读取元素
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1);
myBest 结果输出:
Lemon,Apple
语法
array.slice(start, end)
参数值
参数 | 描述 |
---|---|
start | 可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 |
end | 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 |
返回值
Type | 描述 |
---|---|
Array | 返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。 |
concat()方法
定义和用法
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法
array1.concat(array2,array3,...,arrayX)
参数
参数 | 描述 |
---|---|
array2, array3, ..., arrayX | 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。 |
返回值
Type | 描述 |
---|---|
Array 对象 | 返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。 |
菜鸟代码:
实例
合并三个数组的值:
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);
children 输出结果:
Cecilie,Lone,Emil,Tobias,Linus,Robin
案例代码
<script>
/* var arr = [1, 2, 3];
arr.push('a', 'b', ['x', 'y']);
console.log(arr);
*/
// concat() 演示
/* var arr = [1, 2, 3];
var result = arr.concat('a', 'b', ['x', 'y', 'z']);
console.log(arr);
console.log(result); // [1, 2, 3, "a", "b", "x", "y", "z"] */
// 通常使用时,只会传入数组形式的参数,用来进行数组的元素连接
var arr1 = [1, 2, 3];
var arr3 = ['a', 'b', 'c'];
var arr4 = ['x', false, true];
var result = arr1.concat(arr3, arr4, [10, 20, 30]);
console.log(result);
</script>
面试题
一道面试题:传递两个参数m,n,返回长度为m,所有元素都为n的数组,要求不能用循环。
利用函数的递归和 concat() 方法可以实现,代码如下:
function fn(m, n) {
return m ? fn(m - 1, n).concat(n) : [];
}
indexOf()方法:
定义和用法
indexOf() 方法可返回数组中某个指定的元素位置。
该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
如果在数组中没找到指定元素则返回 -1。
提示如果你想查找字符串最后出现的位置,请使用 lastIndexOf() 方法。
语法:
array.indexOf(item,start)
参数值
参数 | 描述 |
---|---|
item | 必须。查找的元素。 |
start | 可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
返回值:
类型 | 描述 |
---|---|
Number | 查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。 |
菜鸟代码:
实例
查找数组中的 "Apple" 元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
a 结果输出:
2
实例
查找数组中 "Apple" 的元素, 在数组的第四个位置开始检索:
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4);
a 结果输出:
6
案例代码
<script>
var arr = ['a', 'b', 'a', 'c', 'd', 'a', 'f', 'a', 'c', 'd', 'a', 'f', 'a', 'c', 'd', 'a', 'f', 'a', 'c', 'd', 'a', 'f'];
/* var index = arr.indexOf('a', 0);
console.log(index); // 0
// 继续往后查找
index = arr.indexOf('a', index 1);
console.log(index); // 2
index = arr.indexOf('a', index 1);
console.log(index); // 5
index = arr.indexOf('a', index 1);
console.log(index); // 7 */
// 使用while循环简化代码
/* var index = arr.indexOf('a', 0);
console.log(index); // 0
// 如果后面还存在a,才需要继续重复查找
while (arr.indexOf('a', index 1) !== -1) {
index = arr.indexOf('a', index 1);
console.log(index);
} */
// 使用do..while改进while的代码
var index = -1; // 为了让do中的第一次取值为0,凑数将index初始值设置为-1
do {
index = arr.indexOf('a', index 1);
console.log(index);
} while (arr.indexOf('a', index 1) !== -1);
</script>
reserve()方法
定义和用法
reverse() 方法用于颠倒数组中元素的顺序。
实例
颠倒数组中元素的顺序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
fruits 结果输出:
Mango,Apple,Orange,Banana
sort()方法
定义和用法
sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序。
注意:当数字是按字母顺序排列时"40"将排在"5"前面。
使用数字排序,你必须通过一个函数作为参数来调用。
函数指定数字是按照升序还是降序排列。
注意: 这种方法会改变原始数组!。
返回值
Type | 描述 |
---|---|
Array | 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。 |
菜鸟代码:
实例
数组排序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits 输出结果:
Apple,Banana,Mango,Orange
实例
数字排序(数字和升序):
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
fruits输出结果:
1,5,10,25,40,100
实例
数字排序(数字和降序):
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});
fruits输出结果:
100,40,25,10,5,1
案例代码:
// var arr = [1, 4, 2, 6, 3, 12, 23, 22, 18, 9];
// 如果希望对数值数组正常排序,需要设置参数:
// - 升序参数:
// - function (a, b) { return a - b }
// - 降序参数
// - function (a, b) { return b - a }
/* arr.sort(function (a, b) {
return b - a;
});
console.log(arr); */
对sort()实现方式的分析:
<script>
// var arr = [1, 4, 2, 6, 3, 12, 23, 22, 18, 9];
// 如果希望对数值数组正常排序,需要设置参数:
// - 升序参数:
// - function (a, b) { return a - b }
// - 降序参数
// - function (a, b) { return b - a }
// 通过冒泡排序的实现分析参数的设置方式:
function mySort (arr, fn) {
for (var i = 0; i < arr.length - 1; i ) {
for (var j = 0; j < arr.length - i - 1; j ) {
/*
升序格式:
arr[j] > arr[j 1]
arr[j] - arr[j 1] > 0
降序格式:
arr[j] < arr[j 1]
arr[j 1] > arr[j]
arr[j 1] - arr[j] > 0
*/
if (fn(arr[j], arr[j 1]) > 0) {
var temp = arr[j];
arr[j] = arr[j 1];
arr[j 1] = temp;
}
}
}
}
var arr = [1, 4, 2, 6, 3, 12, 23, 22, 18, 9];
// 自带的方法可以写成arr.sort() 我们的mySort不是自带的,就不能那么写
mySort(arr, function (a, b) {
return b - a;
});
/* mySort(arr, function (a, b) {
return b - a;
}); */
console.log(arr);
</script>
toString()
定义和用法
toString() 方法可把数组转换为字符串,并返回结果。
注意: 数组中的元素之间用逗号分隔。
实例
将数组转换为字符串:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();
fruits将输出:
Banana,Orange,Apple,Mango
join()
定义和用法
join() 方法用于把数组中的所有元素转换一个字符串。
元素是通过指定的分隔符进行分隔的。
语法:
array.join(separator)
参数 | 描述 |
---|---|
separator | 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。 |
返回值
类型 | 描述 |
---|---|
String | 返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。 |
菜鸟代码
实例
把数组中的所有元素转换为一个字符串:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();
energy输出结果:
Banana,Orange,Apple,Mango
实例
使用不同的分隔符:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");
energy 结果输出:
Banana and Orange and Apple and Mango
案例代码
// join()
// - 参数:连接符,默认为逗号,连接
// - 返回值:连接后的字符串
var arr = [1, 2, 3];
console.log( arr.join() ); // '1,2,3'
console.log( arr.join('-') ); // '1-2-3'
console.log( arr.join('abc') ); // '1abc2abc3'
console.log( arr.join('') ); // '123'
三 字符串的操作方法
charAt()
定义和用法
charAt() 方法可返回指定位置的字符。
第一个字符位置为 0, 第二个字符位置为 1,以此类推.
菜鸟代码
实例
返回字符串中的第三个字符:
var str = "HELLO WORLD";
var n = str.charAt(2)
n输出结果:
L
实例
返回字符串中的最后一个字符:
var str = "HELLO WORLD";
var n = str.charAt(str.length-1);
n 返回值:
D
案例代码:
<script>
// 字符串也可以根据索引操作
// 方式1: []操作方式
var str = 'abcdefg';
// console.log(str[1]); // 'b'
// console.log(str[4]); // 'e'
/* str[0] = 'z';
console.log(str); */// 'abcdefg' 无法修改,体现了字符串的不可变性
// 遍历字符串
/* for (var i = 0; i < str.length; i ) {
console.log(str[i]);
} */
// 方式2:字符串.charAt(索引值)
// console.log( str.charAt(2) ); // 'c'
for (var i = 0; i < str.length; i ) {
console.log(str.charAt(i));
}
</script>
slice()
定义和用法
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。
字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推。
提示: 如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
用法与数组的slice()方法相似
// 1 slice()
/* var str = 'abcdefg';
console.log(str.slice(1, 4));
// console.log(str.slice());
console.log(str); */
实例
提取所有字符串:
var str="Hello world!";
var n=str.slice(0);
以上实例输出结果:
Hello world!
实例
从字符串的第3个位置提取字符串片段:
var str="Hello world!";
var n=str.slice(3);
以上实例输出结果:
lo world!
实例
从字符串的第3个位置到第8个位置直接的字符串片段:
var str="Hello world!";
var n=str.slice(3,8);
以上实例输出结果:
lo wo
实例
只提取第1个字符:
var str="Hello world!";
var n=str.slice(0,1);
以上实例输出结果:
H
实例
提取最后一个字符:
var str="Hello world!";
var n=str.slice(-1);
以上实例输出结果:
!
substring()
与slice()作用较为相似,,但不包括结束处的字符。类似数学上的[ ) 这样的区间
定义和用法
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
语法:
string.substring(from, to)
参数 | 描述 |
---|---|
from | 必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置。 |
to | 可选。一个非负的整数,比要提取的子串的最后一个字符在 string Object 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
// 2 substring() 使用方式与前面的slice一样
/* var str = 'abcdefg';
console.log(str.substring(1, 4));
console.log(str.substring());
console.log(str); */
substr()
定义和用法
substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。
提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
注意: substr() 方法不会改变源字符串。
语法
string.substr(start,length)
参数 | 描述 |
---|---|
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
返回值
类型 | 描述 |
---|---|
String | 返回一串包含文本提取部分的新字符串 |
菜鸟代码
实例
抽取指定数目的字符:
var str="Hello world!";
var n=str.substr(2,3)
n 输出结果:
llo
实例
在本例中,我们将使用 substr() 从字符串第二个位置中提取一些字符:
var str="Hello world!";
var n=str.substr(2)
n 输出结果:
llo world!
提一笔
slice()和substring()方法 括号里的参数都是(start,end),即开始时的数组下标到结束时的数组下标,而substr()方法 括号里的参数是(start,length),即开始目标的下标和截取字符长度(截取几个字符写多少),所以相对爱建substr表较好用
indexOf()
定义和用法
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
注意: indexOf() 方法区分大小写。
提示: 同样你可以查看类似方法 lastIndexOf() 。
语法:
string.indexOf(searchvalue,start)
参数值
参数 | 描述 |
---|---|
searchvalue | 必需。规定需检索的字符串值。 |
start | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
返回值:
类型 | 描述 |
---|---|
Number | 查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。 |
菜鸟代码:
实例
查找字符串 "welcome":
var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
n 输出结果:
13
实例
在字符串查找字符 "e" 第一次出现的位置:
var str="Hello world, welcome to the universe.";
var n=str.indexOf("e");
n 输出结果:
1
实例
在字符串第五个位置开始查找字符 "e" 第一次出现的位置:
var str="Hello world, welcome to the universe.";
var n=str.indexOf("e",5);
n 输出结果:
14
案例代码
<script>
// var str = 'ab123c321abc213abc123dwabda';
/* console.log( str.indexOf('a') ); // 0
console.log( str.indexOf('a', 1) ); // 9
console.log( str.indexOf('a', 10) ); // 15
*/
// 与数组一样,可以通过while和do..while循环改进
// 注意点:
// 1 检索字符串中的多个字符组成部分, 返回的是首字符的索引
/* var str = 'abc123c321abc213abc123dwada';
console.log(str.indexOf('abc')); // 0
console.log(str.indexOf('abc', 1)); // 10 */
// 2 如果使用indexOf检索空字符串'',一定返回0
var str = 'abcdefg';
console.log(str.indexOf('')); // 0
</script>
toUpperCase()
/* var str = 'abcdefgABC123';
console.log(str.toUpperCase());
console.log(str); */
toLowerCase()
/* var str = 'ABECDEabc123';
console.log(str.toLowerCase());
console.log(str); */
replace()
定义和用法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
该方法不会改变原始字符串。
语法
string.replace(searchvalue,newvalue)
参数
参数 | 描述 |
---|---|
searchvalue | 必须。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
newvalue | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
返回值
String | 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。 |
---|---|
实例
在本例中,我们将执行一次替换,当第一个 "Microsoft" 被找到,它就被替换为 "Runoob":
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace("Microsoft","Runoob");
n 输出结果:
Visit Runoob!Visit Microsoft!
实例
执行一个全局替换:
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red");
n 输出结果:
Mr Blue has a red house and a red car
实例
执行一个全局替换, 忽略大小写:
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/gi, "red");
n 输出结果:
Mr red has a red house and a red car
/*
因为replace替换方法一次只能替换一次,所以要在文本中进行所有替换就需要循环了(看案例代码),但循环也是比较麻烦的,所以我们可以用正则表达式来进行全局替换
这里补充一下正则表达式replace替换
/表达式/[修饰符]
g:全局匹配
i:忽略大小写
gi:全局 忽略
*/
//这个可以应用于屏蔽敏感词
案例代码
<script>
var str = 'a-b-c-d';
// 例如希望将str中的-换成|
// - 注意只能替换从左往右找到的第一段内容
/* console.log(str.replace('-', '|'));
console.log(str); */
// console.log(str.replace('-', '|'));
// console.log(str.replace('-', '|').replace('-', '|').replace('-', '|'));
// 通过while循环替换字符串中的所有-
while (str.indexOf('-') !== -1) {
// 进行替换操作即可
str = str.replace('-', '|');
}
console.log(str);
</script>
split()
定义和用法
split() 方法用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: split() 方法不改变原始字符串。
语法
string.split(separator,limit)
参数 | 描述 |
---|---|
separator | 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。 |
limit | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
返回值
类型 | 描述 |
---|---|
Array | 一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 string Object 分割成子串创建的。返回的数组中的字串不包括 separator 自身。 |
菜鸟代码
实例
省略分割参数:
var str="How are you doing today?";
var n=str.split();
n 输出数组值得结果:
How are you doing today?
实例
分割每个字符,包括空格:
var str="How are you doing today?";
var n=str.split("");
n 输出数组值得结果:
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
实例
使用 limit 参数:
var str="How are you doing today?";
var n=str.split(" ",3);
n 将输出3个数组的值:
How,are,you
实例
使用一个字符作为分隔符:
var str="How are you doing today?";
var n=str.split("o");
n 输出数组值得结果:
H,w are y,u d,ing t,day?
案例代码
<script>
// var str = 'a-b-c-d-e';
// console.log(str.split('-'));
// console.log(str.split()); // 不传参数没有意义
// console.log(str.split('')); // 传入空字符串,将每个字符分隔
// 与数组的join方法结合使用:
// 1 替换字符串中的部分内容
var str = 'a-b-c-d-e'; // 将字符串中的-替换为|
console.log(str.split('-'));
console.log(str.split('-').join('|'));
// 2 删除字符串中的部分内容
/* var str = 'a-b-c-d-e'; // 将字符串中的-删除
console.log(str.split('-').join('')); */
</script>
trim()
定义和用法
trim() 方法用于删除字符串的头尾空格。
trim() 方法不会改变原始字符串。
语法
string.trim()
返回值
类型 | 描述 |
---|---|
String | 返回移除头尾空格的字符串。 |
菜鸟代码
实例
去除字符串的头尾空格:
var str = " Runoob ";
alert(str.trim());
输出结果:
Runoob
案例代码
var str = ' jack ';
console.log(str.trim());
console.log(str);