目录
前言:
JavaScript提供了很多常用的内置对象,包括数学对象Math、日期对象Date、数组对象Array以及字符串对象String等。
定义
JavaScript的内置对象:用户可以直接使用的对象。
1、Math:包含数学常数属性和数学函数
成员 | 功能 |
PI | 获取圆周率,结果为3.141592653589793 |
abs(x) | 获取x的绝对值,可传入普通数值或是用字符串表示的数值 |
max() | 获取所有参数中的最大值 |
min() | 获取所有参数中的最小值 |
pow(base, exponent) | 获取基数(base)的指数(exponent)次幂,即 baseexponent |
sqrt(x) | 获取x的平方根 |
ceil(x) | 获取大于或等于x的最小整数,即向上取整 |
floor(x) | 获取小于或等于x的最大整数,即向下取整 |
round(x) | 获取x的四舍五入后的整数值 |
random() | 获取大于或等于0.0且小于1.0的随机值 |
console.log("圆周率:",Math.PI)
var x = -15;
console.log("绝对值:",Math.abs(x))
console.log(Math.pow(2,3)) //2的3次方
console.log(Math.sqrt(3)) //3的算术平方根
var k = Math.round(Math.random()*10); //获取0~10之间的随机数
console.log("随机数:",k);
var m = 2.78
console.log("小于或等于x的最大数:",Math.floor(m));
console.log("大于或等于x的最小数:",Math.ceil(m));
console.log(Math.max(12,45,21))
2、Date对象:使用new Date()创建对象
2.1 构造方法
A、new Date():无参构造,当前的日期时间
B、new Date(y,M,d,h,m,s):带参的构造,参数是年、月、日、时、分、秒
C、new Date(dateString): 参数是日期字符串
var d1 = new Date();
console.log(d1.toJSON());
var d2 = new Date(2021,10,7,14,16,35);
console.log(d2)
var d3 = new Date("2021-11-7 14:21:35");
console.log(d3)
2.2 常用方法
(1)常用get方法
方法 | 作用 |
getFullYear() | 获取表示年份的4位数字,如2020 |
getMonth() | 获取月份,范围0~11(0表示一月,1表示二月,依次类推) |
getDate() | 获取月份中的某一天,范围1~31 |
getDay() | 获取星期,范围0~6(0表示星期日,1表示星期一,依次类推) |
getHours() | 获取小时数,返回0~23 |
getMinutes() | 获取分钟数,范围0~59 |
getSeconds() | 获取秒数,范围0~59 |
getMilliseconds() | 获取毫秒数,范围0~999 |
getTime() | 获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数 |
var d1 = new Date();
console.log(d1.toJSON());
console.log("年份:",d1.getFullYear())
console.log("月份:",d1.getMonth()+1) //0~11之间(0表示1月,11表示12月)
console.log("日期:",d1.getDate());
console.log("周:",d1.getDay());//0~6之间,0表示星期天
console.log("时:",d1.getHours())
console.log("分:",d1.getMinutes())
console.log("秒:",d1.getSeconds())
console.log(d1.getYear()) //获取当前年份-1900的结果
console.log(d1.getMilliseconds()) //返回指定日期对象的毫秒数
console.log(d1.getTime()) //
var m = d1.getTime();
var k = m/1000/3600/24/365;
console.log("k=",k)
(2)常用set方法
方法 | 作用 |
setFullYear(value) | 设置年份 |
setMonth(value) | 设置月份 |
setDate(value) | 设置月份中的某一天 |
setHours(value) | 设置小时数 |
setMinutes(value) | 设置分钟数 |
setSeconds(value) | 设置秒数 |
setMilliseconds(value) | 设置毫秒数 |
setTime(value) | 通过从1970-01-01 00:00:00计时的毫秒数来设置时间 |
注意:月份的整数值,从 0(1月)到 11(12月)
(3) 练习
"三天打鱼,两天晒网",假定2008-08-08在"晒网",请问今天是"打鱼"还是"晒网"
var d1 = new Date("2008-08-08");
var d2 = new Date("2021-12-09");
var s = d2.getTime() - d1.getTime();
var m = parseInt(s/1000/3600/24)%5;
switch(m){
case 0:
case 1:
case 2: console.log("打鱼");break;
case 3:
case 4: console.log("晒网");break;
}
3、Array对象
3.1 数组类型检测的方法
A、instanceof运算符
B、isArray()方法:Array.isArray([参数])
var arr = [1,2,33,44,55]
var obj = {}
console.log( arr instanceof Array) //判断arr是否是Array
console.log( obj instanceof Array)
console.log(Array.isArray(arr))
console.log(Array.isArray(obj))
3.2 数组的遍历
for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
for(var k in arr){
console.log(arr[k])
}
for(var k of arr){
console.log(k)
}
arr.forEach(function(t){
console.log(t)
})
arr.map(function(t){
console.log(t)
})
3.3 添加元素
push(参数1…) | 数组末尾添加一个或多个元素,会修改原数组 | 返回数组的新长度 |
unshift(参数1…) | 数组开头添加一个或多个元素,会修改原数组 | 返回数组的新长度 |
var arr = [1,2,33,44,55]
var a1 = 8
arr.push(a1);//在数组的末尾添加一个或多个元素
console.log(arr)
arr.unshift(2005) //在数组的开头添加一个或多个元素
console.log(arr);
3.4 删除元素
pop() | 删除数组的最后一个元素,若是空数组则返回undefined,会修改原数组 | 返回删除的元素的值 |
shift() | 删除数组的第一个元素,若是空数组则返回undefined,会修改原数组 | 返回第一个元素的值 |
var arr = [1,2,33,44,55]
var k = arr.pop() //删除最后一个元素,返回删除的元素的值
console.log(k)
var k = arr.shift(); //删除第一个元素,返回第一个元素的值
console.log(k)
console.log(arr)
3.5 排序
sort() | 对数组的元素进行排序,该方法会改变原数组,返回新数组 |
var sa = [2800,1500,4500,2100,1100,4500]
sa = sa.sort()
console.log(sa)
3.6 逆置
reverse() | 颠倒数组中元素的位置,该方法会改变原数组,返回新数组 |
var sa = [2800,1500,4500,2100,1100,4500]
sa = sa.reverse()
console.log(sa)
3.7 数组的索引
查找元素在数组中的位置
indexOf() | 返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1 |
lastIndexOf() | 返回指定元素在数组中的最后一个的索引,如果不存在则返回-1 |
var sa = [2800,1500,4500,2100,1100,4500]
console.log(sa.lastIndexOf(4500))
3.8 数组转换字符
toString() | 把数组转换为字符串,逗号分隔每一项 |
join('分隔符') | 将数组的所有元素连接到一个字符串中 |
3.9 其他
方法 | 功能描述 |
fill() | 用一个固定值填充数组中指定下标范围内的全部元素 |
splice() | 数组删除,参数为splice(第几个开始, 要删除个数),返回被删除项目的新数组 |
slice() | 数组截取,参数为slice(begin, end),返回被截取项目的新数组 |
concat() | 连接两个或多个数组,不影响原数组,返回一个新数组 |
4、字符串对象
4.1创建方式
(1)直接创建
var 变量名 = "字符串"
例如: var str = "xx大学"
(2)通过String对象创建
var 变量名 = new String("字符串");
例如:var str = new String("xx大学");
4.2 字符串默认属性
length,用来记录字符串的长度。
格式:字符串变量名.length
4.3 方法
(1)根据字符返回位置
indexOf(searchValue) | 获取searchValue在字符串中首次出现的位置 |
lastIndexOf(searchValue) | 获取searchValue在字符串中最后出现的位置 |
(2)根据位置返回字符
charAt(index) | 获取index位置的字符,位置从0开始计算 |
charCodeAt(index) | 获取index位置的字符的ASCII码 |
str[index] | 获取指定位置处的字符(HTML5新增) |
(3)其他方法
concat(str1, str2, str3…) | 连接多个字符串 |
slice(start,[ end]) | 截取从start位置到end位置之间的一个子字符串 |
substring(start[, end]) | 截取从start位置到end位置之间的一个子字符串,基本和slice相同,但是不接收负值 |
substr(start[, length]) | 截取从start位置开始到length长度的子字符串 |
toLowerCase() | 获取字符串的小写形式 |
toUpperCase() | 获取字符串的大写形式 |
split([separator[, limit]) | 使用separator分隔符将字符串分隔成数组,limit用于限制数量 |
replace(str1, str2) | 使用str2替换字符串中的str1,返回替换结果,只会替换第一个字符 |
var str = new String("西安xx大学西安大雁塔")
console.log("长度:",str.length);
console.log('位置:',str.lastIndexOf('大'));
var str = "Hello World,Hello JavaScript";
var index = str.indexOf('o');//找到'o'第一次出现的位置
var num = 0;
while(index != -1){
console.log(index);
index = str.indexOf('o',index+1);//继续找下一个'o'
num++;
}
console.log("出现的次数:",num);
console.log(str.charAt(9));//返回索引为9的字符
console.log(str.charCodeAt(5));
console.log(str[0]);