1 对象概述
在JavaScript中,对象是一种数据类型,它是由属性和方法组成的一个集合。
属性是指事物的特征,使用“对象.属性名”访问。
方法是指事物的行为,使用“对象.方法名()”进行访问。
手动赋值属性或方法来添加成员。
var p1 = {
color: '黑色',
weight: '188g',
screenSize: '6.5',
call: function(num) { console.log('打电话给' + num);},
sendMessage: function(num, message) {},
playVideo: function() { console.log('播放视频'); },
playMusic: function() { console.log('播放音乐'); }
}
//访问p1的属性和方法
console.log(p1.color);
console.log(p1['weight']);
console.log(p1.screenSize);
p1.call('123');
p1.sendMessage('123', 'hello');
p1.playVideo();
p1.playMusic();
对象的定义:
- 利用字面量创建对象
var 对象名 = {}
- 用new Object创建对象
var obj = new Object(); // 创建了一个空对象
obj.name = '小明'; // 创建对象后,为对象添加成员
obj.age = 18;
obj.sex = '男';
obj.sayHello = function() {
console.log('Hello');
};
- 利用构造函数创建对象
var 对象名 = new 构造函数名()
"构造函数"可以有参数,也可以没有参数;如果没有参数小括号可以省略。
this:利用当前构造函数所创建的那个对象
eg:
function Student(){
this.name = '李四'
this.sex = '男'
this.age = 25
this.show = function(){
console.log('姓名:'+this.name)
console.log('性别:'+this.sex)
console.log('年龄:'+this.age)
}
}
var s1 = new Student()
s1.show()
遍历对象的属性和方法:使用for…in循环
for(var 变量名 in 对象名){
循环语句
}
in运算符:判断某个成员(属性、方法)在这个对象中是否存在。存在返回true;不存在返回false
2 JavaScript的内置对象
2.1 Math对象
不需要实例化
Math.PI
:算术常量PIMath.abs(x)
:返回x的绝对值Math.max(args...)
:返回所有参数中的最大值Math.min(args...)
:返回所有参数中的最小值Math.pow(x,y)
:返回x的y次方Math.sqrt(x)
:返回x的算术平方根Math.random()
:返回0.0-1.0之间的随机数- Math.round(x):返回最接近x的整数,四舍五入
Math.floor(x)
:返回小于等于x,并且与x最接近的整数Math.ceil(x)
:返回大于等于x,并且与x最接近的整数
2.2 Date对象
需要使用new Date( )创建一个对象
Date( )是一个构造函数,可以给该构造函数传参数生成一个日期对象
getYear( )
:获取指定Date对象date的年份字段减去1900getFullYear( )
:获取指定Date对象date的年份字段getMonth( )
:获取Date对象的月份(返回值在0(1月)-11(12月)之间)getDate( )
:获取Date对象的日期(一月中的某一天(1-31之间的整数))getDay( )
:获取一周中的某一天(星期几)getHours( )
:获取Date对象的小时数(0-23之间的整数)getMinutes( )
:获取Date对象的分钟数(0-59)getSeconds( )
:获取Date对象的秒钟数getTime( )
:获取Date对象距离1970年1月1日午夜(GMT时间)之间的毫秒数toLocaleDateString( )
:将Date对象转化为本地的日期格式toLocaleString( )
:将Date对象转化为本地的日期时间格式
时间戳:获取从1970年1月1日0时0分0秒开始一直到当前UTC时间所经过的毫秒数。
// 方式1:通过日期对象的valueof()或getTime()方法
var date1 = new Date();
console.log(date1.valueOf()); // 示例结果:1571196996188
console.log(date1.getTime()); // 示例结果:1571196996188
// 方式2:使用“+”运算符转换为数值型
var date2 = +new Date();
console.log(date2); // 示例结果:1571196996190
// 方式3:使用HTML5新增的Date.now()方法
console.log(Date.now()); // 示例结果:1571196996190
倒计时小例子:
function countDown(time) {
var nowTime = +new Date();
var inputTime = +new Date(time);
var times = (inputTime - nowTime) / 1000;
var d = parseInt(times / 60 / 60 / 24); d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24); h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60);m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60); s = s < 10 ? '0' + s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
// 示例结果:05天23时06分10秒
console.log(countDown('2019-10-22 10:56:57'));
2.3 字符串对象
必须使用new String( )来创建
charAt(index)
方法:返回指定索引位置的字符;s.charAt(i)-'0'
:两个字符相减实际上是ASCII码对应的数相减;charCodeAt(index)
:返回index位置的字符的ASCII码 字符串名[index]:获取指定位置处的字符contant(s1,s2,s3....)
:连接多个字符串split('分隔符')
:将字符串按给定的分隔符,转换成字符串数组substr(start,length)
:从start开始提取length个字符构成一个新的字符串substring(from,to)
:提取从from到to(不含to)之间的字符构成一个新串toLowerCase( )
:将串中大写字符转换为小写,返回一个新串toUpperCase( )
:将串中小写字符转换为大写,返回一个新串replace(str1,str2)
:使用str2替换字符串中的str1,返回替换结果,只会替换第一个str1split()
方法用于把一个字符串分割成字符串数组。
值类型:简单的数据类型(字符串、数值型、布尔型、undefined、null)
引用类型:复杂数据类型(对象、数组) 变量当中保存引用的地址