js面向对象第一天

一:面向对象

1)面向对象?

面向对象是一种编程思想。

类:具有相同特征的一类事物,js中有很多内置类,我们也可以自己创建类

对象:通过类创建出对象,是具体的,js中有很多的对象,我们也可以自己去创建对象

2)类?

js中提供很多类,如number String, Boolean, Object, Math, Date, ....

通过类创建出对象,使用new运算符来创建,如 var a=new Array()

new一个类就可以创建出一个对象

3)对象?

对象中有很多的静态特征,通常使用变量来描述,此时变量也叫属性。

对象中有很多的动态特征,通常使用函数来描述,引时函数也叫方法(属性)。

对象是属性的无序集合(操作(CRUD)集合)。

4)三条定律,两条链?

定律一:一切都是对象

定律二:所有的对象都是通过类来创建的

定律三:对象是属性的无序集合

两条链:作用域链,原型链

二:对对象的一些操作

1)访问对象中的属性

点语法:对象名.属性名

中括号的形式:对象名【】,需要在中括号内加上引号。

2)添加属性

点语法:对象名.属性名=属性值

中括号的形式:对象名【】=属性值,需要在中括号内加上引号。

注意:如果添加了同名的属性,同名属性将会被覆盖。

设置对象的属性(精细化设置对象的属性)

每一个对象的属性都有一些特征:

configurable:是否可以被删除,默认是true,可以删除

writable: 是否可以修改属性值,默认是ture,可以修改

enumerable:是否可以枚举,默认是ture,可以枚举

value:表示属性值,没有给定属性值,属性值是undefiend

设置对象的属性(精细化设置对象的属性)

Object.defineProperty(对象名,"属性名", {配置表})

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

Object是一个类 类.xxx 说明xxx是类上的一个属性(静态属性)

defineProperty是Object这个类上的静态属性 define是定义的意思 Property

注意:在修改属性值和属性特征时:如果这个属性不存在,表示新增了一个属性并精细化设置了

删除属性:直接delete 属性名。注意:加var不能被删除,不加var的可以被删除(winmdow对象)

遍历对象的属性:

   用两种方式遍历对象的属性:

for in  

for(item in 对象名){console.log(item)}

Object.keys()

console.log(wc[item])

判断一个属性是否属于某一个对象

in和hasOwnProperty的区别:

hasOwnProperty:方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。

in判断某一个属性是否属于某一对象

区别:

hasOwnProperty:(只会在自己原型中去找)

in先在自己内部找,如果找不到,会去它的原型对象中找。

三.把函数当做一个类来使用

把函数当做一个类(构造器),目的是创建对象

函数现在有两个角色:普通函数:执行上下文。类:(构造器,构造函数):new

把函数当做一个类和一个普通的对象有什么区别?

new在执行代码时会创建一个对象,然后把this指向这个对象

最后把对象的地址返回

注意:通常类名的首字母会大写

来练习一个,自己写一个试试

function CreatPerson(name,age){

this.name=name;

this.age=age;

this.eat=function(){

console.log("eat...")

}

}

var person=new CreatPerson("张",18);

console.log(person.name);

console.log(person.age);

person.eat();

四.instanceof 与typeof的区别

typeof:用于判断基本数据类型,对引用数据类型的判断不够准确

instanceof :用于判断引用数据类型,不能判断基本数据类型。

四.JSON对象校验JSON是否合法:http://www.bejson.com/

JSON: JavaScript Object Notation JS对象的表示法

 是一种特殊的JS对象,JSON是一种轻量级的数据交换格式。

上网本质:

客户端:手机,QQ,浏览器...

 服务器:计算机

 上网就是客户端去请求服务器,服务器返回你需要的数据的过程。

客户端与服务器之前肯定需要数据通信:

 JSON就是客户端与服务器之间通信的一种数据格式。

JSON通常的写法有两种:

数组的形式:[{},{},{}]

对象的形式:{}

 JSON数据的语法:

 1,由键值构成

2,键值对与键值对之间使用逗号隔开

3,{} 放对象 [] 放数组

 4,键也必须使用双引号包起来,不能少

 5,值可以是数字,字符串,布尔值,数组,对象,null, 但是不能是函数

JSON通常的写法有两种:一定要记住JSON的值不能是函数

数组的形式:[{},{},{}],里面是对象

JSON的两种形式

JSON有两种形式:

字符串

本身是一个字符串,通过单引号引起来;

var str='[{"id":1,"name":"z3","age":4,"score":"10"}]'

JSON对象

比较特殊的JS对象

var obj=[{"id":1,"name":"z3","age":4,"score":"10"}]

JSON对象用stringify转成JSON字符串:

 let str=window.JSON.stringify(obj);

JSON字符串用parse转成JSON对象:

let obj=window.JSON.parse(str);

JSON对象的修改:

1)访问

console.log(Stu[0]);//访问数组第一个元素

console.log(Stu[0].name) //访问数组第一个元素中那个对象的第一个属性值

console.log(Stu[0]["name"]) //访问数组第一个元素中那个对象的第一个属性值

2)修改

Stu[0].score="100";

console.log(Stu[0])

3)删除

delete Stu[0].score;

console.log(Stu[0])

4)遍历

//先用for或者for each来遍历数组,在用for in 来遍历内层的对象

for(var i=0;i<Stu.length;i++){

//这一步能遍历出里面的每一个数组对象

for(var item in Stu[i]){

console.log(item+"====="+Stu[i][item])

}

}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值