@[TOC] JavaScript对象
一、String对象:
字符串对象也可以使用字符串的方法。
1.String对象的创建。
var s0 = new String();//创建空字符串
var s1 = new String("abc");//非空字符串
注意:不建议创建String对象,它会拖慢执行速度,由于它会占用引用空间。
可以选择直接赋值产生字符串。例如:var s1 = "abc"的方式。
2.字符串的遍历:
for(var index in s)
{
console.log(s[index]);
console.log(s.charAt(index));
console.log(s.charCodeAt(index));//将获取到的字符转换成ascii
}
3.检测类型:
var s = new String("abc");
var s1 = "abc";
console.log(typeof s);//object
console.log(typeof s1);//string
console.log(s == s1);//true
console.log(s === s1);//false值相同类型不同
4.字符串方法:
(1)parseInt():字符串类型的数字转换成数字类型。(强制转换)
注意这里的字符串要是数字在后就无法这样转换.
这个方法有两个参数,一个是字符串,一个是转换的进制(默认情况下是10进制)
console.log(parseInt("123"));//字符串中位于前面的数字字符串转化为整数
console.log(parseFloat("98.63"));//98.63
console.log(parseInt("98/*"));//98
(2)toString(): 数字类型转换成字符串类型
var a = 123;
console.log(a.toString());//”123“
(3)indexOf():在字符串检测字符的方法
indexOf用法:1个参数(要检测的字符)。如果存在返回能找到得第一个这个字符下标,不存在返回-1
2个参数(要检测的字符,起始查找的索引位置)。如果存在返回所找到的第一个下标,不存在返回-1
查找的顺序是从左向右查找。
var str = 'ekhckjhjk';
console.log(str.indexOf("c"));//3
console.log(str.indexOf("k",1));//1
//LastindexOf,查找的顺序是从右向左。其余特性与indexOf相同
console.log(str.lastIndexOf("c"));
console.log(str.lastIndexOf("c",4));
(4)concat():返回的是拼接之后的字符串
var m = "kloin";
var k = "56668p";
console.log(str.concat(m));
console.log(str.concat(m,k));//ekhckjhjkkloin56668p
console.log(str.concat(m).concat(k));//ekhckjhjkkloin56668p
(5)replace():字符的单个替换方法
两个参数分别是要替换的字符+替换的值
var str = 'ekhckjhjk';
console.log(str.replace("k",0));//e0hckjhjk
(6)search():查找字符的方法
参数为所要查找的字符。这个里面可以写正则表达式,indexOf不可以
var str = 'ekhckjhjk';
console.log(str.search("c"));//3
(7)ascii值 与 字符之间的相互转换
charCodeAt():参数为当前字符的索引。将字符转化为ascii值
fromCharCode():将ascii值转化为字符
charAt():参数为当前字符的索引.根据索引取字符
var s = "a";
console.log(s.charCodeAt(0));//97
console.log(String.fromCharCode(98));//b
console.log(s.charAt(0));//a
(8)split() : 将字符串转化为数组,参数是:符号(以什么符号隔开)
var s1 = "adkjkh";
console.log(s1.split(""));//用空字符串隔开["a","d","j","k","h"];
(9)字符串里面的截取方法
slice(),参数为开始截取的索引,结束截取的索引。取小不取大
substr(),参数是起始索引 + 截取的长度
substring(),参数是起始索引和结束索引,取小不取大
var k1 = "jkjjljhjdan";
console.log(k1.slice(0,3));//不影响原字符jkj
console.log(k1.substr(2,4));//jjlj
console.log(k1.substring(0,4));
(10)trim() :字符串去空的方法(这个去空是对字符串的首尾进行去空)
var user = " a b c d e f ";
console.log(user.trim());
console.log(user);
(11)大小写的字符串转化
var s2 = "ABCDEljklj";
console.log(s2.toLocaleLowerCase());//abcdeljklj 本机的
console.log(s2.toLowerCase());//abcdeljklj 国际上的
console.log(s2.toUpperCase());//ABCDELJKLJ
console.log(s2.toLocaleUpperCase());//ABCDELJKLJ
(12)字符串里面获取各个值
var s3 = "abc";
console.log(s3.charAt(1));
console.log(s3[0]);
二、数组(Array)对象:
1.创建数组:
//标准写法
var arr = new Array();//实例化一个数组对象
console.log(arr);
//简单写法
var arr1 = [];
console.log(arr1);
2.给数组赋值:
在构造函数括号里直接写值的时候,注意参数的个数,
写一个值代表数组的长度
写多个值代表数组里面的值
var arr2 = new Array(2);
console.log(arr2);//数组长度为2的空数组
var arr3 = new Array(1,2,3,4,5);
console.log(arr3);//数组的长度自动,内容为参数列
3.数组的取值。
数组里面的存储值是按照key:value的方式存的
var arr3 = new Array(1,2,3,4,5);
console.log(arr3[0]);
4.给数组某个索引位赋值。
var arr3 = new Array(1,2,3,4,5);
arr3[0] = "y";
console.log(arr3);//["y",2,3,4,5]
5.数组的属性,长度length,可以返回数组的长度。
var s3 = [1,2,3,4];
console.log(s3.length);//4
6.数组里面的方法。
join将数组的每一位进行拼接,参数是符号。
将数组转化为字符串的方法
var s3 = [1,2,3,4];
console.log(s3.join("_"));//1_2_3_4
//reverse 数组进行翻转 对原数组有影响
console.log(s3.reverse());//[4, 3, 2, 1]
7.数组的截取。
slice 数组的截取 参数是截取的开始和结束索引,取小不取大(对原数组没有影响)
splice 数组的截取 参数是起始索引+截取长度,返回值是截取结果(对原数组有影响)
console.log(s3.slice(0,2));//[4, 3]
console.log(s3.splice(1,3));//[3,2,1]
8.数组的拼接。
concat() : 数组拼接
var a1 = [1,2,3];
var a2 = [4,5,6];
console.log(a1.concat(a2));
9.数组的拷贝。(不影响原数组)
copyWidthin() 将数组里面的某一个拷贝到另一个位置
第一个参数是复制后的值放的位置,第二个参数是开始复制的位置,第三是结束复制的位置(满足取小不取大)
var str = ["a","b","c","d","h"];
str.copyWithin(2,0,1);
console.log(str);//["a", "b", "a", "d"]
10.every() :检测数组里面的值,是否满足条件.参数是个函数
检测数组里面的每一位,是否满足函数条件 满足true 不满足就是false
function里的参数分别是当前的值(必填),当前元素的索引值,当前元素的数组对象
var array = [2,6,8];
console.log(array.every(function(currentValue,index,arr)
{
return currentValue % 2 == 0;
}));
11.fill() :使用固定值 填充数组的某一位(影响元素组)
fill方法的参数:
1.要填充的值 2.start 3.end(取大不去小)
如果只写一个参数 默认全部填充为同一值
var array = [2,6,8];
console.log(array.fill("name"));//["name", "name", "name"]
console.log(array.fill("a",0,2));//["a", "a", "name"]
12.fillter(): 数组的过滤
参数:
1.必须。回调函数function。
2.arr5处这个是可选。传递给回调函数的this,如果不写this undefined
var arr5 = [1,2,3,4,5,6];
console.log(arr5.filter(function(currentValue){
console.log(this);//[1, 2, 3, 4, 5, 6]
return currentValue % 2 == 0;
},arr5));//[2, 4, 6]
13.find(): 根据条件找满足的第一个值
var t1 = [1,2,3,4,5];
console.log( t1.find(function(currentValue,index){
console.log(currentValue);
//在没写如下条件的情况下结果是遍历每一位
return currentValue % 3 == 0;
}));//3找到一个返回条件的就不会再执行了
14.findindex() 与find类似,只是它返回的是满足条件的第一个元素值的索引。
var t1 = [1,2,3,4,5];
console.log( t1.findIndex(function(currentValue,index){
console.log(currentValue);
//在没写如下条件的情况下结果是遍历每一位
return currentValue % 3 == 0;
}));//2
15.foreach(): 数组的内置方法 数组的遍历。
var t1 = [1,2,3,4,5];
t1.forEach(function(currentValue,index)
{
console.log(currentValue);
});
16.includes(): 检测数组里面是否包含某个值,返回值是 true 或 false。
var t1 = [1,2,3,4,5];
console.log(t1.includes(5));
17.indexOf(): 检测数组里的某个值
找到了返回索引,找不到返回-1。
var t1 = [1,2,3,4,5];
console.log(t1.indexOf(3));
18.isarray(): 检测当前对象是否是数组
该方法比较特殊,是数组类对象的方法。
var t1 = [1,2,3,4,5];
console.log(Array.isArray(t1));//true
19.map() : 映射。
var t1 = [1,2,3,4,5];
console.log(t1.map(function(currentValue,index)
{
//如果不写内容就是遍历
return currentValue * 2;//[2, 4, 6, 8, 10]
}));
20. reduce(): 累计(从左到右累计)
它的参数之一的调用函数的参数为totle,currentValue,index
var t1 = [1,2,3,4,5];
console.log(t1.reduce(function(totle,currentValue,index)
{
//必须写return 不然无法保存累积值
return totle + currentValue;
}));//15
21.reduceRight(): 累计(从右向左)
console.log(t1.reduceRight(function(totle,currentValue,index)
{
//必须写return 不然无法保存累积值
return totle + currentValue;
}));//15
三、Math对象:
与C语言以及Python语言的Math库内容相似。
1.Math对象中的常数。
console.log(Math.E);
console.log(Math.PI);
2.求绝对值。
console.log(Math.abs(-1));
3.Math中的三角函数,其参数为弧度值。
console.log(Math.cos(30*Math.PI/180));
console.log(Math.sin(30*Math.PI/180));
console.log(Math.tan(30*Math.PI/180));
4.反三角函数。
console.log(Math.acos(45*Math.PI/180));
console.log(Math.asin(30*Math.PI/180));
console.log(Math.atan(30*Math.PI/180));
5.向下取整。
console.log(Math.floor(4.9));//4
6.向上取整。
console.log(Math.ceil(4.1));//5
7.四舍五入。
console.log(Math.round(4.4));//4
8.返回最大值。
console.log(Math.max(1,2,99,6));
9.返回最小值。
console.log(Math.min(1,99,6,0));
10.幂方法。
console.log(Math.pow(2,3));
11.开平方。
console.log(Math.sqrt(9));
四、日期对象(Date):
1.实例化日期对象。
var time = new Date();
console.log(time);//可以直接拿到中国标准时间
2.日期对象的set型方法(即设置类型)。
var nowtime = new Date();
nowtime.setDate(12); //设置日期
//nowtime.setFullYear(2021,2,12); // 使用该方法 设置的时候注意月 月份+1
nowtime.setYear(2021);//设置年的
nowtime.setMonth(2);//设置月 +1
nowtime.setHours(20);//设置小时
nowtime.setMinutes(59);//设置分钟
nowtime.setSeconds(59);//设置秒的
nowtime.setMilliseconds(999);//设置毫秒的
console.log(nowtime);
3.日期对象的get型方法(即获取不同单位的时间)
var stime = new Date();
console.log(stime.getFullYear());//2020
console.log(stime.getYear());//120 1900 +120 2020 从1900年开始计算的
console.log(stime.getMonth());//5 使用的时候+1
console.log(stime.getDate());//日
console.log(stime.getDay());//周几
console.log(stime.getHours());//小时
console.log(stime.getMinutes());//分钟
console.log(stime.getSeconds());//秒
console.log(stime.getMilliseconds());//毫秒
4.日期对象的时间对象转化;
console.log(nowtime.toDateString());//Sat Jun 12 2021
console.log(nowtime.toISOString());//获取的时间是iso时间 中国时间-8时差
console.log(nowtime.toLocaleDateString()); //2021/3/12
console.log(nowtime.toLocaleString());//2021/3/12 下午8:59:59
console.log(nowtime.toLocaleTimeString());//下午8:59:59
console.log(nowtime.toTimeString());//20:59:59 GMT+0800 (中国标准时间)
console.log(nowtime.toUTCString());//Fri, 12 Mar 2021 12:59:59 GMT 也是减8个时差