JavaScript--总结七(内置对象-Math,Date,String,Array)
Math对象
Math.E----常数的底数Math.ceil();----向上取整
Math.floor();---向下取整
Math.PI----圆周率的值
Math.max();----一组数字中的最大值
Math.min();----一组数字中的最小值
Math.abs();----绝对值
Math.random();----随机数字(返回的是介于0和1之间的伪随机数)
Math.aqrt();-----开平方
Math.pow();-----一个数字的多少次幂
Date--日期var dt=new Date();var dt=+new Date();//一种特殊的写法,只适用于这个Date的对象console.log(dt);
dt.getFullYear();//年dt.getMonth();//月---从0开始dt.getDate();//日dt.getHours();//小时dt.getMinutes();//分钟dt.getSeconds();//秒dt.getDay();//星期---从0开始dt.toDateString();//日期dt.toLocaleDateString();//日期dt.toTimeString();//时间dt.toLocaleTimeString();//时间dt.valueOf();//毫秒
String----字符串对象
string---字符串类型---基本类型(值类型)
String---字符串类型---引用类型
字符串是可以看成是多个字符组合成的数组的
var str=“hello”---可以看成一个字符数组
var str="hello";for(var i=0;i<str.length;i++){console.log(str[i]);}* 整数类型 * int num=10; * 小数 * float num2=90.4 * 字符串 * string str="hello"; //字符串必须用双引号 * //字符 * char ch='h'; //字符必须用单引号---值---只有一个js中没有字符类型String----是一个对象
字符串可以看成是字符组成的数组,但是JS中的没有字符类型;
字符是一个一个的,在别的语言中字符用一对单引号括起来
在JS中字符串可以使用单引号也可以使用双引号
因为字符串可以看成是数组,所以,可以通过for循环进行遍历
字符串的特性:不可变性,字符串的值是不能改变的
字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改变了
用对象的方式来看待---用对象的方式解释以下
var str="hello";
str[1]="w";--字符串可以通过索引访问(读取-只读)字符串的某个值。不可以设置 var str="abc"; str="def";console.log(str);----结果为-def; // 以上分析--str的值并没有改变,只是重新赋值了,"abc"的值依旧在内存中
解析:var str="abc",将它看作一个对象,在堆上有一个空间存放“abs”,在栈上存储了“abc”对象的地址;
当执行str=“def”时,又在堆上开出了一个新空间,此时str的地址存放的就是这个新空间的地址;因此指向
发生了改变,“abc”对象依旧存在空间中。
字符串的常用属性/方法
实例方法:必须要通过new的方式创建的对象(实例对象)来调用;
静态方法:直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的--比如:Math对象);
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串
.length----字符串的长度
1---字符方法
.charAt(索引);--返回值是指定索引位置的字符串,超出索引,结果是空字符串
.charCodeAt(数字值,可以是多个参数);--获取指定位置处字符的ASCII码
.fromCharCode(数字值,可以是多个参数)---静态方法,返回的是ASCII码对应的值
.concat(字符串1,字符串2,...)--返回的是拼接之后的新的字符串
var str="abcdefgh"; console.log(str.concat("12","23")); //结果为"abcdefgh1223"
.indexOf(要找的字符串,从某个位置开始的索引)--返回的是这个字符串的索引值,没有找到则返回-1
var str="abcdefgh"; console.log(str.indexOf("e",2));//从索引为2的地方开始找e,返回的索引值是4; console.log(str.indexOf("e",5));//从索引为5的地方开始找e,没有找到,返回的值是-1.lastIndexOf(要找的字符串);--从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1;
var str="abcdefgh"; console.log(str.lastIndexOf("e",6));//从后往前找,索引值6往前找到e,返回值为4 console.log(str.lastIndexOf("e",2));//从后往前找,索引值2往前找不到e,返回值-1.replace(“原来的字符串”,“新的字符串”);--用来替换字符串的,返回值是新的字符串
var str="abcdefgh"; console.log(str.replace("abc","123")); 返回值是“123defgh”.slice(开始的索引 k,结束的索引 j);--从索引 k 的位置开始提取,到索引为 j 的前一个结束,没有包括 j ;返回的是提取后的字符串
var str="abcdefgh"; console.log(str.slice(0,2)); //返回的结果是“ab”;.split(“要干掉的字符串”,切割后留下的个数);--切割字符串;
var str="abecdefgeh"; console.log(str.split("e",1));//返回值是[“ab”] console.log(str.split("e",2));//返回值是["ab","cd"]
console.log(str.split("e",3));//返回值是["ab","cd","fg"].substr(开始的位置,个数);--返回的是截取后的新的字符串
var str="abecdefgeh"; console.log(str.substr(2,3)); //返回的值是“ecd”.substring(开始的索引,结束的索引);--返回截取后的字符串,不包括结束的索引妈的字符串
var str="abecdefgeh"; console.log(str.substring(1,4)); //返回的值是“bec”.toLocaleLowerCase();---转小写
.toLowerCase();---转小写
var str="ABCDEF"; console.log(str.toLocaleLowerCase()); //返回值为:“abcdef”.toLocaleUpperCase();--转大写
.toUpperCase();---转大写
var str="abecdefgeh"; console.log(str.toLocaleUpperCase()); 返回值为:“ABECDEFGEH”;.trim();----干掉字符串俩端的空格
var str=" 我 你 她 他 "; console.log(str.trim()); 返回值为:“我 你 她 他”
Array对象
构造函数:var arr=new Array();
字面量方式:var arr=[];
判断对象是不是数组类型:两种
Array.isArray(对象)---->判断这个对象是不是数组instanceof关键字---判断类型1--instanceof var obj=[]; console.log(obj instanceof Array); 2--使用数组的 console.log(Arrar.inArray(obj));.concat(数组,数组,数组,...) 组合一个新的数组.every(函数)--返回值是布尔类型,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(没用),如果这个数组中的每个元素的值都符合条件,最后才返回的是true.filter(函数);返回的是数组中每一个元素都复合条件的元素,组成了一个新的数组.push(值);--->把值追加到数组中,加到最后了---返回值也是追加数据之后的数组长度.pop();--->删除数组中最后一个元素,返回值就是删除的这个值.shift();--->删除数组中第一个元素,返回值就是删除的这个值unshift();--->向数组的第一个元素前面插入一个新的元素,----返回值是插入后的数组forEach(函数)方法---遍历数组用---相当于for循环indexOf(元素值);返回的是索引,没有则是-1.join("字符串");----返回的是一个字符串.map(函数);--->数组中的每个元素都要执行这个函数,把执行后的结果重新的全部的放在一个新的数组中.reverse();----->反转数组.sort();---排序的,可能不稳定,如果不稳定,请写MDN中的那个固定的代码.arr.slice(开始的索引,结束的索引);把截取的数组的值放在一个新的数组中,但是不包含结束的索引对应的元素值.splice(开始的位置,要删除的个数,替换的元素的值);一般是用于删除数组中的元素,或者是替换元素,或者是插入元素