一、对象简介
1.1 对象
对象(Object)定义为属性的无序集合,每个属性存放一个原始值、对象或函数。严格来说,这意味着对象是无特定顺序的值的数组。
1.2 对象的构成
在JavaScript中,对象由特性(attribute)构成,特性可以是原始位,也可以是引用值。若特性存放的是函数,则它将被视为对象的方法(method),否则该特性被视为对象的属性。
1.3 声明和实例化
对象的创建方式为:用关键字new后面跟实例化的类的名字。
var obj1 = new Object();
var str1 = new String();
第一行代码创建了Object类的一个实例,并把它存储到变量obj1中。第二行代码创建了String类的一个实例,并把它存储在变量str1中。若无参数,则括号不是必需的,因此可以采用下面的形式重写上面的两行代码。
var obj1 = new Object;
var str1 = new String;
1.4 对象引用
在JavaScript中,不能访问对象的物理表示,只能访问对象的引用。每次创建对象,存储在变量中的都是该对象的引用而不是对象本身。
对象的引用格式如下:
对象名.on事件 = <语句>|<函数>
【例】
<script>
function show(){
var str = "建议浏览器的分辨率:800x600";
alert(str)
}
document.onload = show();
</script>
1.5 对象废除
JavaScript有无用存储单元收集程序,意味着它不必专门销毁对象来释放内存。当不再引用某个对象时,该对象就被废除了。运行无用存储单元收集程序时,所有废除的对象都被销毁。每当函数执行完它的代码,无用存储单元收集程序都会执行,释放所有的局部变量,在其他不可预知的情况下,无用存储单元收集程序也会执行。
把对象的所有引用都设置为null,可以强制性地废除对象。
二、时间日期对象(Date)
时间、日期是与日常生活息息相关的事情,在JavaScript中,Date对象用来处理时间、日期。JavaScript把日期存为距离UTC时间(1970年01月01日00时00分00秒)的毫秒数。
2.1 定义日期
Date对象用于处理日期和时间。可以通过new关键字来定义Date对象。
var myDate = new Date();
【例】使用Date()方法可以获得当日的日期和时间。
<script>
alert(Date());
</script>
2.2 获取时间和日期
(1) 获取时间:getTime()方法
getTime()方法返回从1970年1月1日至今的毫秒数(系统时间)
(2) 获取日期:getDay()方法
getDay()方法和数组可以用来显示星期,而不仅仅是数字。
【例】使用getDay()方法和数组显示星期,返回值0-6,其中0表示星期日,1表示星期一,...,6表示星期六。
<script>
var now = new Date();
var day = now.getDay();
var dayName;
switch(day){
case 0:
dayName = '星期日';
break;
case 1:
dayName = '星期一';
break;
case 2:
dayName = '星期二';
break;
case 3:
dayName = '星期三';
break;
case 4:
dayName = '星期四';
break;
case 5:
dayName = '星期五';
break;
case 6:
dayName = '星期六';
break;
}
alert('今天是快乐的'+dayName);
</script>
【例】显示程序运行时的本地时间
<script>
var cur = new Date();
var years = cur.getFullYear();
var months = cur.getMonth()+1;
var days = cur.getDate();
var hours = cur.getHours();
var minutes = cur.getMinutes();
var seconds = cur.getSeconds();
alert(`今天是${years}年${months}月${days}日${hours}时${minutes}分${seconds}秒`);
</script>
三、数学计算对象(Math)
3.1 Math对象
Math对象的作用是执行普通的算术任务。Math对象提供多种算术值和算术方法,无须在使用这个对象之前对它进行定义。
3.2 算术值
常用的算术值如下:
(1) E:自然对数的底数
(2) PI:圆周率
(3) SQRT2:2的平方根
(4) SQRT(1/2): 1/2的平方根
(5) LN2:2的自然对数
(6) LN10:10的自然对数
(7) LOG10E:以10为底的e的对数
3.3 算术方法
常用的算术方法如下:
(1)ceil(数值):大于等于该数值的最小整数
(2)floor(数值):小于等于该数值的最大整数
(3)min(数值1,数值2):最小值
(4)max(数值1,数值2):最大值
(5)pow(数值1,数值2):数值1的数值2次方
(6)random():0到1的随机数
(7)round(数值):最接近该数值的整数
(8)sqrt(数值):开方根
【例】猜数小游戏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>猜数小游戏</title>
</head>
<body>
<script>
var num1 = Math.ceil(Math.random()*10);
for(var i=0; i < 3; i++)
{
var num2 = +prompt('请输入0-9中某个数:');
if(num1 > num2){
alert('你猜的数有点小,往大点猜');
}
if(num1 < num2){
alert('你猜的数有点大,往点猜小');
}
if(num1 === num2){
alert('你真聪明!!');
break;
}
}
</script>
</body>
</html>