JS
1.Array(数组)
语法:
var ShuZu=new Array();
1.如果知道Array数组中有几个值,可以直接在括号内写入它的数组个数。
如:
var ShuZu=new Array(3);//表示数组内有三个值。
2.Array数组可以直接写入值,因为是数组所以最少要有两个值。数组中的值可以是不同类型。(在大多数语言中 数组中的值必须是一个类型)
如:
var ShuZu=nwe Array("我是数字","我有四个值","最后一个是数值",1186);
数组的读写:
var ShuZu=new Array(3);
/*赋值方法*/
ShuZu[0]="方括号中指的是索引";
ShuZu[1]="Array(3)括号中的3 指的是有三个数值";
ShuZu[2]="我的索引值为2,我所在Array的位置是3,索引是从0开始的";
/*调用*/
ShuZu[1];
数组的长度
数组的个数是,索引加一。如果给有三个值的数组第[99]索引赋值,那么这个数组的长度为100;
我们也可以给数组的长度赋值,起到裁剪或加长数组。(不建议这样使用)
var ShuZu=nwe Array("我是第一个值","我是第二个值");
ShuZu[99]="我是数组第一百的值";
alert(ShuZu.length);
ShZu.length=2;
alert(ShuZu);
数组的遍历
var ShuZu=nwe Array("我是第一个值","我是第二个值");
for(var i=0;i<ShuZu.length;i++){
alert(ShuZu(i));
}
1.1 数组的栈方法(头尾的添加删除) 栈(据结构暂不深究)
1.1.1push(); 添加到数组的最后
var ShuZu=new Array("我是第一个值","我是第二个值");
ShuZu.push("我可以添加多个值",1,2,3);
console.log(ShuZu);
如果给push();放到 一个变量中,你会惊奇的发现变量的值,是数组原本值得个数加上push()中值得个数的和。
如:
var ShuZu=new Array("我是第一个值","我是第二个值");
var len=ShuZu.push("我可以添加多个值",1,2,3);
console.log(len);
1.1.2 unshift();添加到数组的最前
var ShuZu=new Array("我是第一个值","我是第二个值");
ShuZu.unshift("我们再前面",1,2,3);
console.log(ShuZu);
获取长度
.如:
var ShuZu=new Array("我是第一个值","我是第二个值");
var len=ShuZu.unshift("我可以添加多个值",1,2,3);
console.log(len);
1.1.3 pop();删除最后一个值
var ShuZu=new Array("我是第一个值","我是第二个值");
var s=ShuZu.pop(); //删除最后一个,并且获取。
console.log(s);
1.1.4 shift();删除第一个值
var ShuZu=new Array("我是第一个值","我是第二个值");
var s=ShuZu.shift(); //删除第一个,并且获取。
console.log(s);
1.2数组的排序和连接
1.2.1 join();把数组连接成字符串
var ShuZu=[0,1,2,];//也能这样来写数组
var S=ShuZu.join();/*括号内可添加字符,改变数组变字符串的链接符*/
var A=ShuZu.join("");/*空字符*/
var B=ShuZu.join("*");/**号*/
console.log(S);
console.log(A);
console.log(B);
console.log(typeof(S));
join();的括号内填写什么字符,数组变成字符串将会用什么字符链接。
1.2.2 reverse();数组反序
var ShuZu=[1,5,9,6,3,5,4,a]
var S=ShuZu.reverse();
console.log(S);
1.2.3 sort(); 数组排序
var ShuZu=["b","cb","a","caa","d","A"];
var ShuZu1=[1,12,25,3,48,100];
console.log(ShuZu.sort());
console.log(ShuZu1.sort());
如果括号内没使用参数,是按照字符编码的顺序进行排序。
先根据第一个字符比较大小,第一个字符一样再比较第二个字符,以此类推。
字符编码(ASCII)
function a(a,b){
return a - b;
}
var arr =["10","5",40,"25",1000,"1",100];
console.log(arr);
console.log(arr.sort(a));
var arr =["10","5",40,"25",1000,"1",100];
console.log(arr);
console.log(arr.sort(function(a,b){return a-b}));
上面两个效果一样。 字符数和数值的字符编码不同!!!
console.log(arr.sort(function(a,b){return b-a}));
降序~~
1.2.4 concat();链接数组
var ShuZu=[1,2,3,4];
var ShuZu1=["a","b","c"];
var ShuZu2=["5","c",7];
var ShuZu4=ShuZu.concat(ShuZu1,ShuZu2,[1,5,9,3]);
console.log(ShuZu4);
1.2.5 slice();截取数组中的数据
slice();括号内有两个值,开始值必须设置,开始值设置为0时从第一个值开始截取,能为负值 倒着数第几个。(也可以理解数组长度减去多少)
第二个值设置结束为止,不设置时默认截取后边全部的值。值不能为负数。且再第一个值得右侧(括号内 的值为索引)
如:我们截取b,c,d
var ShuZu=["a","b","c","d","e"];
/*索引值: 0 , 1 , 2 , 3 , 4 */
var b=ShuZu.slice(1,4);/*从1截取包括1,到4结束不包括4*/
var c=ShuZu.slice(-3,4);/*第一值能为负值,倒着数第三个(也可以理解数组长度减去3),第二值不能为负数。且再第一个值得右侧*/
/*(-3,4)等价于(2,4)*/
console.log(b);
console.log(c);
1.3数组的增删改查
1.3.1 splice();删除,插入,替换
括号内第二个值:不写则删除以后全部;设置0则不删除,并且 splice();没有返回值。
删除
splice();括号内有两个值,开始值必须设置,开始值设置为0时从第一个值开始删除。 能为负值 倒着数第几个。(也可以理解数组长度减去多少)。
第二个值与索引无关。是从第一个值起删除几个。
var ShuZu=["a","b","c","d","e"];
var c=ShuZu.splice(2,1);/*从索引2删除1个*/
console.log(ShuZu);
console.log(c);
插入
splice();括号内有两个值,开始值必须设置,开始值设置为0时从第一个值开始删除。 能为负值 倒着数第几个。(也可以理解数组长度减去多少)。
第二个值为0。(第二个值是管理删除的,插入式设置为0)
后面的值是添加的值,值与值之间用英文逗号隔开。
var ShuZu=["a","b","c","d","e"];
var c=ShuZu.splice(2,0,5,6);
console.log(ShuZu);
console.log(c);
替换
splice();括号内有两个值,开始值必须设置,开始值设置为0时从第一个值开始删除。 能为负值 倒着数第几个。(也可以理解数组长度减去多少)。
第二个值与索引无关。是从第一个值起删除几个。
后面的值是添加的值,值与值之间用英文逗号隔开。
var ShuZu=["a","b","c","d","e"];
var c=ShuZu.splice(2,2,5);
console.log(ShuZu);
console.log(c);
我们可以删除1个添加多个值,也可以删除多个值添加1个值。
1.3.2 indexOf() ;与lastIndexOf();/从头查找与从未查找/
第一个值是要查找的值,第二值是开始查找的位置。(第二值为负时,倒数即可,不再看索引)
indexOf();从前往后查找。
astIndexOf();从后向前查找。
var ShuZu=["a","b","c","d","e"];
var a=ShuZu.indexOf("c",4) ;
var b=ShuZu.lastIndexOf("c",4);
var c=ShuZu.indexOf("c",-4) ;
var d=ShuZu.lastIndexOf("c",-4);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
兼容:IE9+,Firefox,Safari,Opera,Chrome
解决兼容:
function ArrayIndexOf(arr,value){
for(var i=0;i<arr.length;i++){
if(arr[i]===value){
return i;
}
}
return -1;
}
2. String(字符串)
2.1 查询
2.1.1 charAt()与charCodeAt()/获取某个字符与获取某个字符的ASCII值/
这里指的索引和数组中的有些相似,数组中以每个值为单位,这里以每个字符为单位。
var a="asdfg hjkl";
索引: 0123456789
console.log(a.charAt(3));/*括号内写入索引,找字符反回字符*/
console.log(a.charCodeAt(3));/*括号内写入索引,找字符返回字符编码。*/
2.1.2 indexOf() ;与lastIndexOf();/从头查找与从未查找/ 与1.3.2 要求相同。
var a="asdfg hjkl";
索引: 0123456789
console.log(a.indxOf("g",3));
console.log(a.charCodeAt("fg",-7));
唯一区别:在数组中只能写一个值,这里可以写入多个字符。
2.2 截取
2.2.1 slice(); 截取 和1.2.5一样
var a="asdfg hjkl";
索引: 0123456789
console.log(a.slice(5,10));
console.log(a);
截取时从第一参数开始,剪切时不包括第二参数。
第二参数省略截取到最后
参数为负,长度加该负数即可。
2.2.2 substring();截取和slice();几乎一样
区别:substring()括号中设置负数时,默认转换成0。
如:(-7,-1);返回值则是空字符串
如:(-7,5)和(5,-7)是一样的效果。substring();默认把小值设为起点值。
var a="asdfg hjkl";/*注意有个空格*/
console.log(a.substring(6,3));
console.log(a);
2.2.3 substr();截取和slice();几乎一样
区别:
- substr()第二个参数。是截取的长度
- 第一个值为负数时,倒查(长度加改值)。第二个参数为负数时不截取。
var a="asdfg hjkl";/*注意有个空格*/
console.log(a.substr(5,3));
console.log(a);
a="asdfg hjkl";
console.log(a.substr(-5,3));
console.log(a);
a="asdfg hjkl";
console.log(a.substr(5,-3));
console.log(a);
2.3 转换数组
2.3.1 split(字符);
var a="asdfg hjkl";/*注意有个空格*/
var arr=a.split(" ");/*以空格为分隔条件*/
var b="2018/08/08"
var brr=b.split("/");
console.log(a);
console.log(b);
console.log(arr);
console.log(brr);
2.4 替换
2.4.1 replace(被替换的字符,替换成的字符);
字符串中有多个于被替换的字符相同时,只替换第一个。
var a="asdfg hjkl";/*注意有个空格*/
var arr=a.replace(" ",";");/*以空格为分隔条件*/
console.log(a);
console.log(arr);
##2.5 大小写转换
2.5.1 toUpperCase();转换成大写
var a="asdfg hjkl";/*注意有个空格*/
var arr=a.toUpperCase();
console.log(a);
console.log(arr);
2.5.2 toLowerCase();转换成小写
var a="ASDFF GGG";/*注意有个空格*/
var arr=a.toUpperCase();
var b=arr.
console.log(a);
console.log(arr);
3. Number (数值)
3.1 查找
不能有非数值的字符的值,有非数值字符值返回结果为NaN
3.1.1 Math.min(数值1,数值2,… ); 返回最小值
var a=Math.min(5,-5,10,0,9,"-100");
var b=Math.min(5,-5,10,0,9,"aaa");
console.log(a);
console.log(b);
3.1.2 Math.max(数值1,数值2,…); 返回最大值
var a=Math.max(5,-5,10,0,9,"100");
var b=Math.max(5,-5,10,0,9,"aaa");
console.log(a);
console.log(b);
3.2 取整
不能有非数值的字符的值和多个小数点,有非数值字符值返回结果为NaN
3.2.1 Math.ceil(); 向上取整
var a=Math.ceil(18.6);
var b=Math.ceil("18.6");
var c=Math.ceil("18.6.1");
var d=Math.ceil("aaa");
console.log(a,b,c,d);
3.2.2 Math.floor();向下取证
var a=Math.floor(18.6);
var b=Math.floor("18.6");
var c=Math.floor("18.6.1");
var d=Math.floor("aaa");
console.log(a,b,c,d);
3.2.3 Math.round();四舍五入
var a=Math.round(18.6);
var b=Math.round("18.4");
var c=Math.round("18.6.1");
var d=Math.round("aaa");
console.log(a,b,c,d);
3.3 Math.abs();绝对值
不能有非数值的字符的值和多个小数点,有非数值字符值返回结果为NaN
var a=Math.abs(-18.6);
var b=Math.abs("-18.6");
var c=Math.abs("-18.6.1");
var d=Math.abs("-aaa");
console.log(a,b,c,d);
3.4Math.random();随机数(从0到1 不包含1)
var a=Math.random();
console.log(a);
从n到m之间的随机整数的公式
var a=Math.floor(Math.random()*(m-n+1)+n);
如:3-9
var a=Math.floor(Math.random()*(9-3+1)+3);
console.log(a);
4.Date(日期)
4.1 获取当前日期和时间
获取当前时间对象
var a=new Date();
console.log(a);
4.2 日期年月日时分秒和星期的获取
4.2.1 getFullYear();四位年份
var a=new Date(),b=a.getFullYear();
console.log(b+"年");
4.2.2 getMonth(); 月份(0-11)
返回值0是指1月 返回值加1等于月份
var a=new Date(),b=a.getMonth();
console.log(b+1+"月");
4.2.3 getDate(); 日
var a=new Date(),b=a.getDate();
console.log(b+"日");
4.2.4 getDay();星期(0-6)
var c=["周日","周一","周二","周三","周四","周五","周六"];
var a=new Date(),b=a.getDay();
console.log(c[b]);
4.2.5 getHours();小时
var a=new Date(),b=a.getHours();
console.log(b+"小时");
4.2.6 getMinutes();分
var a=new Date(),b=a.getMinutes();
console.log(b+"分");
4.2.7 getSeconds();秒
var a=new Date(),b=a.getSeconds();
console.log(b+"秒");
4.2.8 getTime();毫秒
从1970年1月1日00:00:00开始到现在时间的毫秒数
var a=new Date(),b=a.getTime();
console.log(b+"毫秒");
4.2 日期年月日时分秒和星期的设置
4.2.1 setFullYear();四位年份
var a=new Date(),a.setFullYear(2000);
console.log(a);
4.2.2 setMonth(); 月份
写入的指是要减1:如12月则写入11
写入15返回值为年数加1年 月数为15-11
var a=new Date(),a.setMonth(15);
console.log(a);
4.2.3 setDate(); 日
var a=new Date(),a.setDate();
console.log(a);
例题:10天后是星期几
var a=new Date();
a.setDate(a.getDate();+10);
console.log(a.getDay());
4.2.5 setHours();小时
var a=new Date(),a.setHours();
console.log(a);
4.2.6 setMinutes();分
var a=new Date(),b=a.setMinutes();
console.log(a);
4.2.7 setSeconds();秒
var a=new Date(),b=a.setSeconds();
console.log(a);
4.2.8 setTime();毫秒
从1970年1月1日00:00:00开始到现在时间的毫秒数
var a=new Date(),b=a.setTime(1000);
console.log(a);
4.3 创建日期对象的方法
4.3.1 Data(年,月,日);
在Date后的括号中写入年月日月的值会被加1
var a=new Date(2000,8,17);
console.log(a);
4.3.2 Data(毫秒);
在Date后的括号中写入从1970年1月1 日00:00:00开始计算的毫秒数
var a=new Date(10000000000);
console.log(a);