JavaScipt基础
九、对象(Object)
9.1什么是对象
万物皆对象
现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征。
举例: 一部车,一个手机
车是一类事物,门口停的那辆车才是对象
特征:红色、四个轮子
行为:驾驶、刹车
9.2JavaScript中的对象
JavaScript中的对象其实就是生活中对象的一个抽象
JavaScript的对象是无序属性的集合。
其属性可以包含基本值、对象、数组或函数。
对象就是一组没有顺序的值。
我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。
对象的行为和特征
特征---属性
行为---方法事物的特征在对象中用属性来表示。
事物的行为在对象中用方法来表示。
属性和方法统称为对象的成员。
9.3如何得到一个对象
var obj1 = {};//得到一个空对象
var obj2 = {name:'张三',age:18};//得到拥有两个属性的对象
//得到拥有两个属性和一个方法的对象
var obj3 = {
name:'张三',
age:18,
fei:function(){
console.log('你上天啊!');
}
}
•new Object() 创建对象 (内置构造函数)
var person = new Object();
person.name = 'lisi';
person.age = 35;
person.sayHi = function(){
console.log('Hello,everyBody');
}
•自定义构造函数创建对象
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayHi = function(){
console.log('Hello,everyBody');
}
}
var p1 = new Person('张三', 22, 'actor');
new关键字和构造函数
构造函数 ,是一种特殊的函数,又叫做函数构造器。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
构造函数用于创建一类对象,首字母通常大写。
构造函数要和new一起使用才有意义。
new 关键字也读做实例化。实例化构造函数,得到一个对象。
9.4this的指向
JavaScript中的this指向问题,比较复杂,有时候会让人难以捉摸,随着学习的深入,我们会不断接触this,
在学习过程中,我们可以不断总结,最终搞清楚this在何种情况下指向何处……
目前,我们只需要记住以下两点就可以了:
1: 函数如果在某个对象下,this就指向这个对象
2: 函数如果被直接调用,this指向window对象
var o1 = {
name: '山治',
f: function () {
console.log(this.name);
}
}
o1.f(); // 山治
function f(){
console.log(this);
}
f();
console.log(window);
9.5对象的使用
- 方法及属性的使用
对象.方法名(); //调用对象的方法
对象.属性; //获取对象的属性
- 遍历对象的属性
通过for..in语法可以遍历一个对象
var obj1 = {
name:'路飞',
age : 17,
sex : '男',
}
for(var k in obj1){
console.log(k);
console.log(obj1[k]);
}
注意:使用for …in语法,同样可以遍历数组
注意:如果属性名或方法名,是一个变量,则使用对象[变量名] 语法
•删除对象的属性
var obj1 = {
name:'路飞',
age : 17,
sex : '男',
}
console.log(obj1.age); //17
delete obj1.age; //删除对象中指定的属性
console.log(obj1.age); // undefined
总结:
创建对象有三种方式,字面量、new内置构造函数及自定义构造函数;对象中有属性及方法,this指向当前对象,使用 . (点) 语法调用属性及方法;
十、标准库对象(内置对象)
JavaScript 提供了很多个内置对象:Math/Array/Number/String/Boolean...
对象只是带有属性和方法的特殊数据类型。
我们在学习时其实就是要记住对象的每个属性和方法怎么使用,代表什么含义;
技术问题,遇到分歧,去哪里查找资料:
10.1Math对象
10.1.1常用属性和方法
Math 是一个内置对象, 它具有数学常数和函数的属性和方法。不是一个函数对象。
与其它全局对象不同的是, Math 不是一个构造函数. Math 的所有属性和方法都是静态的.
跟数学相关的运算直接使用Math中的成员即可
console.log(Math.PI); //圆周率3.141592653589793
Math.random();//介于 0 和 1 之间的伪随机数。
Math.ceil(6.6);//获取大于或等于提供数值的最小整数--向上取整
Math.floor(8.8);//获取小于或等于提供数值的最大整数--向下取整
Math.round(9.9);//四舍五入
Math.max(10,20,15);//取多个值中的最大值
Math.min(10,20,15);//取多个值中的最小值
Math.pow(10,2);//返回x的y次幂
Math.sqrt(100);//求平方根
10.1.2案例
- 求10-20之间的随机数
- .floor(Math.random() * (max - min)) + min;
10.1.3属性方法对照表
Math对象的属性(常量)
属性(常量) |
描述 |
数学常数 e。这是欧拉数,自然对数的底。 |
|
2 的自然对数。 |
|
10 的自然对数。 |
|
以 2 为底 e 的对数。 |
|
以 10 为底 e 的对数。 |
|
Pi。这是圆的周长与直径的比值。 |
|
0.5 的平方根,或相当于 1 除以 2 的平方根。 |
|
2 的平方根。 |
Math对象的方法(函数)
方法(函数) |
描述 |
返回数字的绝对值。 |
|
返回数字的反余弦值。 |
|
返回数字的双曲反余弦值(或反双曲余弦值)。 |
|
返回数字的反正弦值。 |
|
返回数字的反双曲正弦。 |
|
返回数字的反正切值。 |
|
将与 X 轴的角度(以弧度为单位)返回到由 y 和 x 坐标表示的点。 |
|
返回数字的反双曲正切。 |
|
返回大于或等于提供的数值表达式的最小整数。 |
|
返回数字的余弦值。 |
|
返回数字的双曲余弦。 |
|
返回 e(自然对数的底)的乘幂数。 |
|
返回 e(自然对数的底)的乘幂数减去 1 的结果。 |
|
返回小于或等于提供的数值表达式的最大整数。 |
|
返回参数平方和的平方根。 |
|
返回被视为 32 位带符号整数的两个数字的积。 |
|
返回数字的自然对数。 |
|
< |