js基础(6)

面向过程
面向对象
对象
创建对象的不同的方式

内置对象
自定义对象
数据类型的深入:
简单类型和复杂类型—画图理解数据的值在哪个空间中存储。
每个对象下的常见方法的使用

编程思想:把一些生活中做事的经验融入到程序中
面向过程:凡事都要亲力亲为,每件事的具体过程都要知道,注重的是过程
面对对象:根据需要找对象,所有的事都用对象来做,注重的是结果

面向对象特性:封装,继承,多态
js不是面向对象的语言,但是可以模拟面向对象的思想
js是一门基于对象的语言:
万物皆对象:—->
什么是对象?
看的见,莫得到,具体特指的某个东西
找对象
描述找对象
文字描述找对象
小明牵着小黄去逛街

分析对象有什么特点:特征和行为
对象:有特征和行为,具体特指的某一个事物
总结什么是对象
没有对象
创建对象三种方式
1.调用系统的构造函数创建对象
2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
3.字面量的方式创建对象

第一种创建对象的方式
var obj =new Object();Object是系统的构造函数 实例化对象
对象有特征—属性和行为—方法
添加属性 对象.名字 =值
obj.name=“”;
obj.age=”“;
添加方法 对象.名字=函数
obj.eat=function(){};

第二种,工厂模式
对象不能分辨出到底是属于什么类型的。
在当前这个对象的方法中是可以访问当前这个对象的属性的值。
如何获取该变量(对象)是不是属于什么类型的
语法:
变量instanceof 类型的名字—->布尔类型
在当前的对象的方法中,可以使用this来代表这个对象。
如何一次性创建多个对象?把创建对象的代码封装在一个函数中
function createObject(){
var obj =newObjcet();//创建对象
obj.name=xiaofang
obj.age
obj.sayHi=function(){};
}
自定义构造函数创建对象,我要自己定义一个构造函数,自定义构造函数,创建对象。
function Person(){}
函数与构造函数的区别:名字是不是大写的(首字母是大写)

1.在内存中开辟(申请一块空闲的空间)空间,存储创建的新的对象
2.把this设置为当前的对象
3.设置对象的属性和方法的值
4把this这个对象返回

栈放地址,堆放内容

第三种方式,字面量的方式创建对象
var obj ={
name:”小明”,
age:20,
sayHi:function(){},
eat:function(){}
};
字面量创建对象的缺陷:无法改源码

js是一门动态类型的语言
1.代码(变量)只有执行到这个位置的时候,才知道这个变量中到底存储的是什么。如果是对象,就有对象的属性和方法,如果是变量就是变量的作用
2.对象没有什么,只要点了,通过点语法,那么就可以为对象添加属性或者方法

对象:有属性和方法,特指的某个事物
对象:一组无序属性的集合

JSON格式的数据:一般都是成对的,是键值对
json也是一个对象,数据都是成对的,一般json格式的数据五乱是键还是值都是用双引号扣起来的

遍历对象,是不能通过for循环遍历的,无序
可以通过for-in循环
for(var key in json){}
//key json对象中的属性的名字
对象中确实有个这个属性 对象.属性名字 或者 对象[属性名字]

原始数据类型:number ,string,boolean,underfined,null,object
基本类型(简单类型),值类型:number,string,boolean
复杂类型(引用类型):object
空类型:underfined,null

值类型的值在哪一块空间中存储?栈中存储
引用类型的值在哪一块空间中存储?栈和堆中存储
值类型传递的是传递的是值
引用类型之间传递,传递的是地址(引用)

值类型作为函数的参数,传递的是值
引用类型作为函数的参数,传递的是地址

js学习中三种对象:
1.内置对象—js系统自带的对象
2.自定义对象—自己定义的构造函数创建的对象
3.浏览器对象—BOM的时候讲

内置对象:
Math、Date、String、Array、Object
//MDN—-在线的帮助文档
Math
//实例对象:通过构造函数创建出来,实例化的对象那个,必须通过实例对象调用
//静态对象:不需要创建,直接就是一个对象,方法直接通过这个对象名字调用,那么也叫作静态方法,必须通过大写对象调用

猜你喜欢

转载自blog.csdn.net/qq_36344771/article/details/81363972