目录
对象分为三类 自定义对象 (封装自己的对象)、内置对象(math、日期、数组、字符串对象)、游览器对象
一为自定义对象
js中是一组无序的相关属性(特征)和方法(行为)的集合,让结构表达更清晰
创建对象:
//利用字面量创建对象 {}
//var obj = {} 创建了一个空的对象
//里面的属性使用键值对的形式 建 属性名:值
var obj = {
unname:'张三疯',
age:18,
sex:'男',
sayHi:function() {
console.log('hi~'); //函数——方法
}
}
//调用对象属性 对象名.属性名
console.log(obj.age);
//对象名['属性名']
console.log(obj['unname']);
//调用对象的 ‘方法’ 对象名.方法名()
obj.sayHi();
变量和函数单独存在,单独拿出使用
属性和方法,通过 对象 . 名 来调用
//利用new object 创建对象
var obj = new Object();
obj.uname = '张三分';
obj.sayHi = function() {
console.log('hi~');
}
new关键字执行的过程
1.在内存中创建一个新的空对象
2.让this指向这个新对象
3.执行构造函数里的代码,为新对象添加属性和方法
4.返回这个新对象(所以构造函数不需要return)
通过new关键字创建对象的过程即为 对象实例化
//构造函数,以一次创建多个重复的对象 //泛指的一个大类
function Star(uname, age, sex) {
this.name = uname;
this.age = age; //必须使用this
this.sex = sex;
this.sing = function() {
console.log();
}
}
var ldh = new Star ('六得花', 19, '男');//调用函数 就返回一个对象 对象特指一个具体的事物
console.log(ldh.age);
var zxy = new Star('张学友', 11, '男');
console.log(zxy.name);
ldh.sing ('忘情水');//调用
//构造函数首字母要大写
//构造函数不需要return 就能返回结果
//调用函数必须使用 new
遍历对象
for (变量 in 对象名){} 变量一般都使用k
for (var k in ldh) {
console.log(k); //得到的是属性名
console.log(ldh[k]);//得到的是属性值
}
内置对象
js自带的一些对象,提供基本和常用的属性和方法
查阅文档
MDN/W3C
//一些math函数
Math.floor() //向下取整
Math.ceil() //向上取整
Math.abs() //取绝对值
Math.round() //四舍五入 就近取整 -3.5 取 -3 1.5 取 2
Math.random() //随机取一个随机小数 【0,1)
随机取一个范围内的整数
function getRandom( min , max) {
return Math.floor(Math.random()*(max - min + 1)) + min;
}
console.log(getRandom(1, 8));
数组名.sort(function(){
return 0.5-Math.random()
});
//将数组乱序的一种方法
封装自己的对象
例如封装一个求最大值的函数。
var myMath = {
max: function() {
var max = arguments[0];
for (var i = 0 ; i < arguments.length ; i++)
{
if (arguments[i]>max)
max = arguments[i];
}
return max;
}
}
console.log(myMath.max(1,5,9));
Data()日期对象,是一个构造函数 ,必须使用new来调用创建日期对象
var date = new Date(); //var date = new Date('2021-10-16 17:02:00');
console.log(date);
返回一个当前的时分秒 格式 00:00:00
function getTime() {
var time = new Date();
var h = time.getHours();
h = h < 10 ? '0'+ h : h ;
var m = time.getMinutes();
m = m < 10 ? '0' + m : m ;
var s = time.getSeconds();
s = s < 10 ? '0' + s : s ;
return h + ':' + m + ':' + s ;
}
console.log(getTime());
//获取现在距离1970年1月1号到现在的总毫秒数
var data1 = +new Date();
console.log (data1);
//获取现在的时间的函数
function getTime() {
var time = new Date();
var year = time.getFullYear();
var month = time.getMonth()+1;
var dates = time.getDate();
var h = time.getHours();
h = h < 10 ? '0'+ h : h ;
var m = time.getMinutes();
m = m < 10 ? '0' + m : m ;
var s = time.getSeconds();
s = s < 10 ? '0' + s : s ;
return year + '-'+ month +'-'+ dates +' ' + h + ':' + m + ':' + s ;
}
基本包装类型 string 、number 、 boolean
将简单数据类型 包装成 复杂数据类型
如
var arr = ['acacaca'];
console.log(arr.length);
//arr具有length属性
祝你学习快乐!