javascript基础-6

1 使用点语法和中括号语法
点语法:
取值:对象名.属性名
赋值:对象名.属性名 = 值
中括号语法:
用法灵活,支持字符串或者变量
取值:对象名[“属性名”]
赋值:对象名[“属性名”] = ‘新值’
点语法与中括号语法的区别:
两种方法都能使用,但是只有中括号语法中支持变量
点语法:对象名.属性名 ——》简洁——》只能写属性名,不支持变量(不管变量)
中括号语法:对象名[‘属性名’] ——》灵活——》只能写字符串或者变量

2 遍历对象
一个一个的访问对象的全部属性
var obj = {
name: ‘张三’,
age: 30
};
for(var key in obj) {
console.log(key);
console.log(obj[key]);
}

3 批量创建对象
在实际开发中,可能需要创建多个用户对象,此时就需要批量创建对象了
使用工厂函数创建对象
需求:需要同时创建多个对象出来
一个一个字面量形式的创建——》可以,但是不停的做重复的代码
可以把重复创建对象的代码用函数封装起来——》这个用来创建对象的函数,就叫做工厂函数
function createPerson(name, age, desc) {
var obj = {
name: name,
age: age,
desc: desc,
say: function() {
// 在对象的方法中, this, 指向当前的对象
console.log(‘大家好, 我叫’ + this.name);
}
};
return obj;
}

var xm = createPerson('小金', 18, '长得帅');
console.log(xm);

var xh = createPerson('小宋', 16, '长得美');
console.log(xh);

注意点:在对象方法中,this就相当于当前这个对象。
优点可以同时创建多个对象
缺点:工厂函数创建出来的对象,是Object类型的,没有更具体的类型!!
有时候咱们需要构建人这个对象,想要其类型就是person,此时使用工厂函数就不行了

4 构造函数的介绍
每一个对象自身存在一个类型,表示自己是什么类型的对象。
作为学生来说,对象的类型应该为Student
作为老师来说,对象的类型应该为Teacher
都是人,不过属于不同类型的人
但是如果使用工厂函数来说,不管创建出来是什么对象,类型始终是Object,因为底层使用的是new Object这个构造函数。用什么构造函数创建的对象,对象类型就是什么

所以如果希望创建一个学生对象,他的类型为Student,此时可以使用自定义一个Student构造函数即可!!

构造函数的特点:
就是一个函数
函数名首字母大写
js内部,内置了一些构造函数,比如:Object、Array…
构造函数可以自定义

自定义构造函数的使用步骤:
1. 声明一个自定义的构造函数,特点是首字母大写
2. 结合new语法一起使用,创建出来的对象,就有自己的类型了!!

5 new做的四件事情

1. new会创建一个新的空对象,并且这个对象是有类型的
2. 让构造函数中的this指向当前创建的对象
	想给当前新对象加属性,直接this.name即可
3. 执行构造函数中的代码
	在这一步可以给新对象加属性和方法
4. 会返回这个新对象

构造函数的作用:给创建对象添加了属性和方法(实例化对象)
没有构造函数体,只是一个空对象
代码:

//构造函数
function Person(name, age) {
	this.name = name;
	this.age = age;
	this.sayHi = function() {
		console.log('大家好')
	}
}

6 值类型与引用类型

简单数据类型(值类型):number、string、boolearn、undefined、null
复杂数据类型(引用类型): Array、Object、Function、(自定义构造函数创建的一些对象!!)
从内存角度上划分,可以把数据分为值类型与引用类型。
简单数据类型(值类型):变量在存储时,存储的是值本身!!
复杂数据类型(引用类型): 变量在储存时,储存的是内存地址!!

值类型与引用类型参数传递
 值类型:变量存的是值本身,传参时传递的是值本身
 引用类型:变量存的是内存地址,传参时传递的是内存地址

7 内置对象

JS内置对象就是指Javascript自带的一些对象,供开发者使用,这些对象提供了一些常用的的功能。
常见的内置对象有Math、String、Array、Date等

Math对象
Math对象中封装很多与数学相关的属性和方法。
圆周率 Math.PI
最大值/最小值
Math.max(1,2,3,4,5,6);
Math.min(1,2,3,4,5,6);
取整
javascript
Math.ceil();//天花板,向上取整,取大的那个
Math.floor();//地板,向下取整,取小的那个
Math.round();//四舍五入,如果是.5,则取更大的那个数
console.log( Math.ceil(1.1) );
console.log( Math.ceil(1.9) );
console.log( Math.ceil(-1.1) );
console.log( Math.ceil(-1.9) );
随机数
Math.random();//返回一个[0,1)之间的数,能取到0,取不到1
绝对值
Math.abs();//求绝对值
console.log(Math.abs(1)); // 1
console.log(Math.abs(-1)); // 1
次幂(次方)
Math.pow(num, power);//求num的power次方
console.log(Math.pow(3, 2)); // 3的平方 9
console.log(Math.pow(10, 3)); // 10的三次方 1000
console.log(Math.pow(100, 0.5)); // 100的开方 10
开方
Math.sqrt(num);//对num开平方
console.log(Math.sqrt(9)); // 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值