目录
JavaScript对象
对象的创建方式
利用字面量创建对象
利用new Object创建对象
利用构造函数创建对象
类
in关键字
遍历对象的属性和方法
内置对象
JavaScript对象
对象的创建方式
利用字面量创建对象
/*
面向对象的编程思想:写类创建对象并调用对象的方法来执行业务逻辑。
*/
//创建了一个空对象
var student = {};//对象中包含:属性、方法
//给对象添加属性
student.name = "jack";
student.age = 18;//给对象添加方法
student.study = function () {console.log(this.name + "正在学习Javascript。");
};//访问对象的属性
console.log(student.name); //"jack"//调用对象的方法
student.study(); // "jack正在学习JavaScript。"
利用new Object创建对象
//Object对象:是所有类的原型对象。
//类似创建了一个空的对象
var obj = new Object();//添加属性
obj.name = "张三";
obj.age = 20;//添加方法
obj.sayHi = function () {console.log(this.name + ",你好!");
}//访问属性
console.log(obj.name); //张三
obj.sayHi(); //张三,你好!
利用构造函数创建对象
/*构造函数:用于创建对象并初始化属性的函数或方法。特点:1.构造函数的名称的首字母大写。2.构造函数需要使用new关键字调用。*///定义一个构造函数
function Animal(name, age, color) {//属性this.name = name;this.age = age;this.color = color;//方法this.cry = function () {console.log(this.name + "正在叫...");}
}//创建对象
var animal = new Animal("哈士奇", 4, "黑白色");
//访问属性
console.log(animal.name); //哈士奇
//调用方法
animal.cry(); //哈士奇正在叫...
类
- 私有属性用#修饰
- 使用constructor构造函数
<script>class Student {//公有属性language = "Javascript";//私有属性#country = "China";//ES13(2022)static count = 0;//静态代码块static {Student.count = 10;//类加载的时候自动执行(类的初始化)console.log("Static block eecuted!");}//构造函数//1.默认有一个无参数的构造函数,开发者如果自己定义了构造函数,无参数的构造消失。//2.JS中的构造函数默认只能有一个。 SyntaxError: A class may only have one constructor/*constructor(){}*/constructor(name, age) {//添加属性this.name = name;this.age = age;//类属性Student.count++;console.log("Student created!");}//方法study() {console.log(this.name + "正在学习 " + this.language + " " + this.#country);}}//创建对象const stu01 = new Student("张三", 20);//访问属性console.log(stu01.name, stu01.age); //张三 20//调用方法stu01.study(); //张三正在学习 Javascript//打印对象console.log(stu01); //Student { name:"张三", age: 20, language:"Javascript" }console.log(stu01.language); //Javascript//访问私有属性// console.log(stu01.#country);//创建对象const stu02 = new Student("李四");//静态属性console.log(Student.count); //12
</script>
in关键字
当需要判断一个对象中的某个成员是否存在时,可以使用____运算符。
答案为:in
//in关键字主要用于判断指定的成员是否在指定的对象中
console.log("name" in obj); // true
console.log("salary" in obj); // false
console.log("sayHello" in obj); // true
console.log("sayHi" in obj); // false
遍历对象的属性和方法
/*
for(;;) 传统的for循环,主要用于循环遍历
for(of) 用于遍历可迭代对象,如数组
for(in) 用于遍历对象的成员(属性和方法)
*/
var obj = {name: "小明",age: 20,city: "北京",sayHello: function () {console.log("Hello," + this.name + "!");}
};
/*
key是对象的所有成员的名字
obj[key]是对象的指定成员的值
*/
for (let key in obj) {console.log(key + " = " + obj[key]);
}
内置对象
Math中的_____方法用来获取随机数,每次调用该方法返回的结果都不同。
答案为:random()
_____是日期对象的构造函数。
答案为:Date()
可以通过Date对象中的_____方法来获取月份,范围是0~11。
答案为:getMonth()
下列选项中,获取从1970-01-01 00::00:00距离Date对象所代表时间的毫秒数的是()
A.getTime() B.setTime() C.getFullTear() D.getMonth()
答案为:A.getTime()
下面选项中,删除数组的最后一个元素的方法是()
A.pop() B.unshift() C.shift() D.push()
答案为:A.pop()
下列选项中,可以实现颠倒数组中元素的位置的是()
A.reverse() B.sort() C.indexOf() D.lastIndexOf()
答案为:A.reverse()
- 数组类型检测有两种常用方式,分别是使用instanceof运算符和使用Array.isArray()方法
- 利用构造函数(类)创建对象的过程,称为实例化。
- Math类(数学相关)是Js提供的一个内置类,该类提供了一些静态成员,可以直接使用类名访问。
- 使用Math.floor(Math.random() * (max + 1) + 1)表示1到任意数之间的随机整数
END