面向对象
对象是什么?
看的见,摸得着的,具体特质的某个东西
找对象:描述找对象
分析对象:对象有什么特点:特征和行为
总结什么是对象
对象:有特征和行为,具体特质的某一事物
对象:有属性和方法,具体特质的某一事物
没有对象创建对象
无序属性的集合
在自定义创建对象 new 对象时做了四件事
1,在内存中开辟(申请一块空闲)空间,存储新的对象
2,吧this设置为当前的对象
3.设置对象的属性和方法的值
4.吧this这个对象返回,
普通函数,小写开头:主要用来调用的
function person() {
}
自定义构造函数,大写开头:主要是用来创建对象
function Person () {
}
对象.属性或方法-----------创建对象属性或方法,如果有此属性,则从新赋值,没有则是创建
对象["属性"]----------------------------如果对象有此属性返回true,否则false
javascript是一门脚本语言
是一门解释性语言
是一门基于对象性语言
是一门弱类性语言
是一门动态性语言:1.代码只有执行到这个位置时候,才知道到底存储的什么,如果是对象,就有对象的属性和方法,如果是变量,就有变量的作用 2.对象什么也没有,只要点了,就可以为对象添加属性和方法
对象.属性,对象.方法() ---------对象["属性"],对象["方法"]()
一组无序属性的集合-----对象
创建对象方式
1.通过系统函数创建对象
var obj = new Object();
//对象的属性 对象.名字 = 值;
obj.name = "小苏";
obj.age = 17;
//添加方法 对象.名字 = 函数;
obj.eat = function () {
console.log("我喜欢吃牛年");
};
通过字面量创建对象
var o ={} ; //空对象,与构造一样
obj.name = "小白";
obj.age = 10;
obj.sayHi = function () {
console.log("我是:"+this.name);
};
obj.sayHi();
//缺点:在对象外面
//在对象外面 一次性对象,改值只能在对象内部改,不能传值
//优化后的
var o = {
name : "张三",
sex : "true",
study : function () {
console.log();
return "爱学习";
}
};
console.log("一个叫"+ o.name+"性别为"+ o.sex+ o.study());
console.log(o.name);
console.log(this);
console.log(o.sex);
o.study();
通过自定义创建对象
function obj (name,age) {
this.name = name;
this.age = age;
this.study = function () {
console.log("爱学习");
}
this.study ();
}
var p1 = new obj ("张三",3);
json格式的不管是值还是键都要用双引号括起来,无序,不能用for循环
k存储的是json对象属性的名字(字符串),key不是属性不能用json["key"]而是json[key]
var json = {
"name" : "xiao",
"age" : "11",
"sex" : "nan"
};
json.height = 180;
for (var k in json) {
console.log(json.k); //创建属性,三个undefined; 对象名.属性创建,如果有,则是重新复制,如果不纯在就是创建属性
console.log(k);
// console.log(json[k]);
// }
Math对象
实例对象:通过构造函数实例化的对象(通过new出来)
静态对象:不需要创建,直接出来就是一个对象,方法是通过静态对象调用的(Math)
实例方法:new出来的
静态方法:对象直接点出来的 Math.name Array.isArray
var random=Math.random();
random=random*10+10;
floor=Math.floor(14.2);//向下取证
round=Math.round(15.22);//round四舍五入
abs=Math.abs(-22);//取绝对值
ceil=Math.ceil(random);//向上取证
random=parseInt(random);//注意用random接收取整
console.log(random);
console.log(floor);
console.log(ceil);
console.log(round);
console.log(abs);
var power= Math.pow(2,4);//pow是求x的y次幂
console.log(power);
var sqrt=Math.sqrt(9);
console.log(sqrt); //平方根
Date对象
var dt = new Date ();
console.log(dt); // 当前标准时间----服务器的Thu Sep 06 2018 00:07:16 GMT+0800 (中国标准时间)
var dt = new Date ("2018-9-5"); //直接传字符串类型,显示的是Date类型(时间类型)
console.log(dt); //Wed Sep 05 2018 00:00:00 GMT+0800 (中国标准时间)
var dt = new Date (2018,9,4);
console.log(dt); //Thu Oct 04 2018 00:00:00 GMT+0800 (中国标准时间)
var dt = new Date (2018/9/4);
console.log(dt); //Thu Sep 01 1970 08:00:00 GMT+0800 (中国标准时间)
var now = new Date ()
console.log(now.valueOf()); //获取据1970年1月1日起的毫秒数
var dt =Date.now()
console.log(dt) //获取据1970年1月1日起的毫秒数
var dt = new Date ();
console.log(dt.getTime ());
console.log(dt.getMilliseconds());
console.log(dt.getSeconds()); //返回0-59
console.log(dt.getMinutes()); //返回0-59
console.log(dt.getHours()); //返回0-23
console.log(dt.getDay()); //返回星期几
console.log(dt.getDate()); //返回这个月的第几天
console.log(dt.getMonth()); //返回这个月分,从0开始的
console.log(dt.getFullYear()); //返回四位的年份
格式化日期:2018年9月6号8:27:40:
var dt = new Date ();
var year =dt.getFullYear();
var month = dt. getMonth()+1; //月份是从0开始,必须加1
var day = dt.getDate();
var hour = dt.getHours();
var minute = dt.getMinutes();
var second = dt.getSeconds();