对象就是一组无需的相关属性和方法的集合
1.创建对象的三种方式
-
对象字面量:花括号,包含了这个对象的属性和方法
eg:var obj = {
uname: 'lala',
age:18,
sayhi: function(){
console.log('hi')
}
}
注意:属性和方法采用键值对的形式,属性名:值
多个属性或方法中间用逗号隔开
方法冒号后面跟的是一个匿名函数 -
new Object()
eg:var obj = new Object(); //创建一个空对象
obj.uname = 'lala';
obj.age = 14;
obj.syahi = function(){}
利用等号赋值的方法添加属性和方法
使用构造函数(以上两种方法每次只能创建一个对象)
构造函数就是把对象里面一些相同大的属性和方法抽象出来封装到函数里面
语法格式:
funciton 构造函数(){
this.属性 = 值;
this.方法 = function(){}
}
使用构造函数:
new 构造函数名()
注意:构造函数名首字母要大写,调用构造函数必须用new
eg:
function Star(uname,age,sex){
this.uname = uname;
this.age = age;
this.sex = sex;
}
var ldh= new Star('刘德华',13,'男')
new关键字执行过程:
- new 构造函数可以在内存中创建一个空对象
- this 会执向刚才创建的空对象
- 执行构造函数里面的代码,给这个空对象添加属性和方法
- 返回这个对象
遍历对象属性
语法格式:
for(变量 in 对象){}
eg:
for(k in obj){
console.log(k) //k是属性名
console.log(obj[k]) //obj[k] 是属性值,注意k没有双引号,必须使用中括号方式
}
2.使用对象
对象名.属性名 或 对象名[’属性名‘]
对象名.方法名
3.内置对象
JS中的对象有3中:自定义对象,内置对象,浏览器对象
内置对象是JS语言自带的对象,提供了一些基本功能。
js提供了多个内置对象:Math,Date,Array, String等
Date:
Date是一个构造器函数,必须用new关键字实例化
var date=new Date();
console.log(date.valueof()) //当前时间距离1970.1.1的总秒数
console.log(date.getTime()) //当前时间距离1970.1.1的总秒数
也可以:
var date= +new Date() //获取当前时间距离1970.1.1的总秒数
也可以
console.log(Date.now()) //获取当前时间距离1970.1.1的总秒数,该方法为h5新增
倒计时案例:
核心算法:输入的时间减去当前时间,即剩余的时间。使用时间戳相减。将剩余时间转换为天,时,分,秒
字符串对象:
var str = 'cc';
console.log(str.length) //简单数据类型为什么有length属性
js底层将简单数据类型进行了包装,将其转换为了复杂数据类型
上述代码实际上执行了如下过程:
var temp = new String('cc');
vat str = temp;
temp = null;//销毁临时变量
注意:字符串所有方法都不会改变字符串本身,因字符串是不可变的。
基本包装类型有:字符串,数字,布尔
- 根据字符返回位置
console.log(str.indexOf('春'))
console.log(str.indexOf('春',3)) //从索引号为3的位置开始往后查找 - 根据位置返回字符
console.log(str.charAt(3));
console.log(str[3]); //h5新增 - 拼接字符串
console.log(concat(str1,str2)) - 截取字符串
console.log(substr('起始位置',‘截取的长度’))