内置对象
math对象:不需要实例化,用来计算一些数学运算。可以直接使用其静态属性和静态方法。
强调:Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像Math.sin() 这样的函数只是函数,不是某个对象的方法。不需要创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。
math对象的常用属性和方法如下:
练习:猜数字(利用math对象的random()方法生成一个随机数)
function getRandom(min, max){ //定义一个函数
return Math.floor(Math.random()*(max - min + 1) + min) //生成一个[min,max]区间内不重复的随机数
}
var random = getRandom(1, 10);
while (true) {
var num = prompt('猜数字,范围在1~10之间');
if (num > random){ //判断输入数字与随机生成的数字的大小
alert('你猜大了')
}
else if (num < random){
alert('你猜小了')
}
else{
alert('恭喜你,猜对了')
break
}
}
实现结果:
Date对象:用于处理日期和时间,需要使用new Date()实例化对象才能使用。Date()是日期对象的构造函数,可以给该构造函数传参数。
创建date对象的语法: var myDate = new Date()
强调:Date 对象会自动把当前日期和时间保存为其初始值。
math对象的常用属性和方法如下:
练习:“三天打鱼两天晒网”,若小王2008-5-12第一天学会开始打渔,那今天是打鱼还是晒网
//“三天打渔,两天晒网”,若2008-5-12在打渔,那今天是打鱼还是晒网
function countDown(time){
var nowTime = + new Date() //获取当前时间
var inputTime = + new Date(time) //给定时间
var times = (nowTime-inputTime)/1000 //计算当前时间与给定时间的差值,单位为毫秒
var d1 = parseInt(times/60/60/24) //将差值转换为天数
d = d1%5
if(d==0 || d==1 || d==2){
//console.log("此人在打鱼")
return "此人在打鱼"
}else{
//console.log("此人在晒网")
return "此人在晒网"
}
}
//countDown("2008-5-12")
console.log(countDown("2008-5-12"))
实现结果:
String对象:String 对象用于处理已有的字符块。是字符串对象,必须使用new String()来创建
string对象的常用属性和方法:
练习
var s1 = new String('159-1234-5678')
var s2 = s1.substr(0,3) //从0开始提取三个字符构成新串
console.log(s2)
var s3 = s1.substring(4,7) //提取从4开始到7(不包含7)的字符并构成一个新的字符
console.log(s3)
var str = 'abCDEF123'
var st = str.toLowerCase() //将大写字符串转换为小写
console.log(st)
var sp = str.toUpperCase() //将小写字符串转换为大写
console.log(sp)
var str = s1.replace('159','abd') //用abd替换第一个出现的159
console.log(str)
实现结果:
JavaScript数组对象提供了添加或删除元素的方法,可以实现在数组的末尾或开头添加新的数组元素,或在数组的末尾或开头移出数组元素。
1、判断数组对象的方法:
isArray(对象名)
instanceof: 对象名 instanceof Array
2、给数组添加数据
push(数据) : 在数组的末尾添加数据
unshift(数据):在数组的开头添加数据
3、删除数组中的元素
pop():删除数组的最后一个数据
shift():删除数组的第一个元素
4、数组元素排序
sort():数组排序,改变原数组,返回新数组
注意:默认是按字符编码顺序排序;若要按其他顺序排序,需自定义函数
function numberOrder(a,b){
return a-b
}
var arr = [1800,1500,3000,900,1200,2100]
arr.sort(numberOrder)
reverse():颠倒数组中元素的位置
5、数组的索引
indexOf(数据):返回给定值的第一个索引,若给定值在数组中不存在,则返回-1
lastIndexOf(数据):返回给定值的最后一个索引,若给定值在数组中不存在,则返回-1
6、数组转字符串
toString():将数组元素转换成字符串,元素之间用逗号分隔
join('分隔符'):将数组元素连接到字符串中
7、连接数组
concat():连接数组,生成新数组,不影响原数组
8、返回数组的部分元素:
slice(start,end):一个新数组,包含从start到end(不包括该元素)指定的array元素。
9、删除数组元素:
splice(start):删除从start开始的数组元素
splice(start,delCount):删除从start开始的delCount个元素
splice(start,delCount,value...):删除从start开始的delCount个元素,将value插入到start开始的位置
练习:
//将数组变为字符串
var arr = [100,12.5,33.8,44]
console.log(arr.toString())
//将字符串以-连接起来
var str = ''
str = arr.join('-') //将字符串以-连接起来
console.log(str)
//console.log(arr.join('-')) //另一种写法
//连接数组,生成新数组,不影响原数组
var newArr = arr.concat(450,550)
console.log(newArr)
//删除数组元素
console.log(arr.slice(1,3))
console.log(arr.splice(1))
//删除从1开始的两个元素
arr.splice(1,2)
console.log(arr)
arr.splice(1,2,55,45)
console.log(arr)
实现结果: