标签:范围 好的 遍历 str1 功能 递归调用 ++ 组成 字符串类
function sum(n){ if(n == 1){ return 1; } return sum(n-1) + n; } alert (sum(100));
var arr = ["钢铁侠", "雷神", "绿巨人"];
arr.push("蜘蛛侠","快银");
alert(arr); //输出钢铁侠,雷神,绿巨人,蜘蛛侠,快银
=============================================
var arr = ["钢铁侠", "雷神", "绿巨人"];
var res = arr.push("蜘蛛侠","快银");
alert(arr); //输出钢铁侠,雷神,绿巨人,蜘蛛侠,快银
alert(res); //返回 5 ,即添加元素后,数组的长度。
=============================================
②【格式】数组.pop()【功能】移除数组末尾的最后一个元素【返回值】移除的元素。【参数】无。例如:
var arr = ["钢铁侠", "雷神", "绿巨人"];
var res = arr.pop();
alert(arr); //输出钢铁侠,雷神
alert(res); //输出绿巨人
=============================================
③
shift() 【格式】数组.shift();功能,从数组的头部取下一个元素,返回值为取下的元素。
var arr = ["美队", "钢铁侠", "寡姐"];
var res = arr.shift();
alert (arr); //输出钢铁侠,寡姐
alert (res); //输出美队
=============================================
unshift();【格式】数组.unshift();给数组头部添加元素【参数】一个或多个 【返回值】添加元素后,数组的长度。
var arr = ["美队", "钢铁侠", "钢铁侠"];
var res = arr.unshift("蜘蛛侠");
alert(arr); //输出蜘蛛侠,美队,钢铁侠,寡姐
alert(res); //输出4
=============================================
④concat() 【功能】将两个数组合并成一个数组,源数组不会被改变【格式】数组1.concat(数组2)【返回值】合并好的新数组【参数】要合并的数组,例如:
var arr1 = ["美队", "绿巨人", "寡姐"];
var arr2 = ["蜘蛛侠", "钢铁侠"];
var arr3 = arr1.concat(arr2);
alert(arr3); //输出美队,绿巨人,寡姐,蜘蛛侠,钢铁侠
alert(arr1); //输出美队,绿巨人,寡姐
alert(arr2); //输出蜘蛛侠,钢铁侠
=============================================
⑤
slice();
【格式】数组.slice(start, end);
【功能】:基于当前数组获取指定区域元素并创建一个新数组。原数组不改变。
【参数】:start开始获取区域的下标,end获取结束区域的下标,注意,获取的范围不包括end下标位置的元素。
【返回值】:指定区域元素生成的新数组。例如:
var arr = ["钢铁侠", "美国队长", "绿巨人", "寡姐"];
var arr2 = arr.slice(1,3);
alert(arr2); //输出美国队长,绿巨人
alert(arr); //输出钢铁侠,美国队长,绿巨人,寡姐
=====================================================
⑥
splice();
可以完成对数组元素的删除、插入、替换操作。
【格式】:数组.splice(start, length, 元素...)
【参数说明】:(参数1 截取的开始下标) (参数2 截取(删)的长度)(参数3 在截取的开始下标位置,我们要插入的元素,插入元素的个数随意。)
【注意】:splice()会对源数组进行修改。
【返回值】:截取掉的元素,组成的数组。例如:
//删除数组中的元素
var arr1 = ["美国队长", "钢铁侠", "寡姐", "绿巨人"];
var arr2 = arr1.splice(1,1);
alert(arr1); //输出美国队长,寡姐,绿巨人(钢铁侠删除了)
alert(arr2); //输出钢铁侠
==================================================
//替换数组元素(也就是先删除,再插入)
var arr1 = ["美国队长", "钢铁侠", "寡姐", "绿巨人"];
var arr2 = arr1.splice(1,2,"蜘蛛侠","鹰眼");
alert(arr1); //输出美国队长,蜘蛛侠,鹰眼,绿巨人(钢铁侠和寡姐被替换成两个新英雄)
alert(arr2); //输出钢铁侠,寡姐
==================================================
//插入数组元素
var arr1 = ["美国队长", "钢铁侠", "寡姐", "绿巨人"];
var arr2 = arr1.splice(1,0,"蜘蛛侠","鹰眼");
alert(arr1); //输出美国队长,蜘蛛侠,鹰眼,钢铁侠,寡姐,绿巨人(下标为1的开始位置成功插入了两个英雄)
alert(arr2); //输出null
===============================================
⑦
join();
【格式】:数组.join(拼接符);
【功能】:使用拼接符将数组中元素拼接成字符串;
【参数】:拼接符
【返回值】:拼接好的字符串
【注】:原数组不改变
var arr = [10, 20, 30];
var res = arr.join("&");
alert(res); //输出10&20&30
alert(arr); //输出10,20,30
======================================================
【格式】:数组.sort();
【功能】:将数组中的元素升序排序。
【注意】:sort()模式是按照字符串进行排序
var arr = [5, 4, 2, 3, 1];
var pai = arr.sort();
alert(pai); //输出 1,2,3,4,5
=================================
var arr = [10, 1, 5, 15];
var pai = arr.sort();
alert(pai); //输出1,10,15,5,原因是因为sort()模式是按照字符串排序
【一般情况下,我们需要自己编写排序的算法,系统提供的排序函数,用的比较少】
==========================================================================
var arr = [9, 8, 7, 6, 5, 4];
for(var i = 0; i < arr.length; i++){
for(var j = 0 ; j < arr.length - i -1; j++){
if(arr[j] > arr[j + 1]){
var middle = arr[j+1];
arr[j+1] = arr[j];
arr[j] = middle;
}
}
}
alert(arr); //输出4,5,6,7,8,9
=================================================
②选择排序:
通过比较先选出最小的数放在第一的位置上,然后在其余的数中选择次小数放在第二的位置上,以此类推,直到所有的数形成有序数列。
var arr = [9, 8, 7, 6, 5, 4];
for(var i = 0; i < arr.length - 1; i++){
for(var j = i + 1; j < arr.length; j++){
if(arr[i] > arr[j]){
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
alert(arr); //输出4,5,6,7,8,9
====================================================
关于数组 复合数据类型(也叫引用数据类型)在计算机中存储的一些说明:
先来看一个单变量的例子:
var i = 10;
function show(i){
i = 5;
alert(i);
}
alert(i); //输出10;
show(i); //输出5;
alert(i); //输出10;
在这个例子中,由于变量的作用域关系,所以尽管第二个函数执行后,起作用的范围仅限该函数内部,执行完立即被释放掉,所以第三次输出仍然为10.
而在下面的例子中:
var arr = [10,20];
function show(arr){
arr.push(30,40);
alert(arr);
}
alert(arr); //输出10,20
show(arr); //输出10,20,30,40
alert(arr);//输出10,20,30,40
根据输出结果,我们可以知道:
所有的复合类型(数组、对象object)都不直接存储在我们的函数中,是存储在内存的一个堆区域,在堆区域,可以任意分配内存空间,所有的符合类型数据,存储的都是门牌号(地址),这个类型的数据也叫做引用数据类型。
==========================================================
访问字符串中的某个字符:charAt();
var str = "hello";
alert(str.charAt(1)); //输出e
也可以通过另外一种简写方式alert(str[1]);访问输出e
==========================================
注意:
Ecmascript中字符串是不可变的,也就是说,字符串一旦创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。例如:
var str = "hello";
str[1] = "x";
alert(str); //输出仍然为hello,如果要改变,那只能整体重新赋值,var str = "hxllo";
================================================
+号可以作为字符串拼接符存在
var str = "hello";
alert(str + "world");//输出helloworld
charCodeAt();
【格式】:字符串.charCodeAt(下标);
【返回值】:返回字符串中对应下标字符的ASCII码值
var str = "hello";
alert(str.charCodeAt(1)); //输出101;
=============================================
String.fromCharCode(ASCII码值);
【参数】:ASCII值,个数任意
【返回值】:ASCII码对应字符组成的字符串
var str = String.fromCharCode(97,98,99);
alert(str); //输出abc
================================================
concat();
可以用于对字符串进行拼接操作,注意,对原有字符串没有影响。
var str1 = "hello";
var str2 = "world";
alert(str1.concat(str2)); //输出heloworld
alert(str1); //输出hello
alert(str2); //输出world
一般情况下很少用concat拼接,直接用字符串拼接符+
==================================================
indexOf();
【格式】:字符串.indexOf(子串,开始查找的位置);
【返回值】:如果在字符串中找到了子串第一次出现的位置,返回子串出现的位置,否则没有查找到返回 -1;
var str = "abcabcabc";
alert(str.indexOf("abc")); //输出0
alert(str.indexOf("abc",1)); //从第一位开始查找,直至第三位找到,所以输出3
alert(str.indexOf("abcd")); //输出-1,没找到
===================================================
lastindexOf();
【格式】:字符串.lastIndexOf(子串);
【返回值】:如果在字符串中找到了子串最后一次出现的位置,返回子串出现的位置,否则没有查找到返回 -1;
var str = "abcabcabc";
alert(str.lastIndexOf("abc")); //输出6
===================================================
search(子串/正则); 参数可以是正则表达式
正则表达式用//开始和结束,还可以添加修饰符,比如 i 表示忽略大小写, g 表示全局匹配。
var str = "Abcabcabc";
alert(str.search("abc")); //js大小写敏感,输出3(从第4位才开始匹配到)
alert(str.search(/abc/i)); //输出0(第1位就找到了,因为使用了正则修饰符i,使其忽略大小写);注意此处,如果启用正则,那么双引号就不需要了。
======================================================
replace();
【格式】:字符串.replace(匹配的字符串/正则表达式,替换成的新字符串);
【返回值】:替换完成以后新生成的字符串。
var str = "how are you";
alert(str.replace("are","old are")); //输出how old are you
alert(str); //依然还是输出how are you 注意之前讲过的字符串不能被修改,只能被重新创建。
再来看一个例子:
var str = "how Are are you";
alert(str.replace("are","old are")); //只能匹配小写的are
alert(str.replace(/are/ig,"old are")); //正则匹配了全局和忽略了大小写,输出how old are old are you
============================================================
substring();
【格式】:字符串.substring(start,end);
【作用】:字符串提取,在指定范围内,提取字符串,生成新字符串。
【返回值】:生成新的字符串。
【注意】:不包含结束位置
var str = "helloworld";
alert(str.substring(2,4)); //输出ll
============================================================
split();字符串分割
【格式】:字符串.split(分隔符,生成的结果的个数);
【返回值】:通过分隔符,分割成的装有子串的数组。
var str = "This is a box";
var arr = str.split(" ");
alert(arr);//按照空格,分割成了单个单词
===================================
var str = "This is a box";
var arr = str.split(" ",2);
alert(arr);//只输出this和is
注意:分隔符是作为一个整体进行计算的,例如:
var str = "This is a box";//this两个空格is一个空格a一个空格box
var arr = str.split(" ");//两个空格
alert(arr);//按照两个空格,分割成了This和is a box;
==========================================
再例如:
var str = "This is a box";//this两个空格is一个空格a一个空格box
var arr = str.split(" ");//一个空格
alert(arr);//输出this,,is,a,box(分出一个空字符串)
====================================
再例如
var str = "This is a box";//this两个空格is一个空格a一个空格box
var arr = str.split("");//空字符串(没有空格)
alert(arr);//逐个进行分割输出,t,h,i,s,,,i,s,,a,,b,o,x
====================================
var str = "This is a box";
var arr = str.split(" ");
alert(arr);
alert(arr.join("&"));
var str = "This is A box";
alert(str.toLowerCase()); //输出小写
alert(str.toUpperCase()); //输出大写
====================================================
标签:范围 好的 遍历 str1 功能 递归调用 ++ 组成 字符串类
原文地址:https://www.cnblogs.com/sunvenet/p/10827047.html