JavaScript——JavaScript对象:对象的创建方式、in关键字、遍历对象的属性和方法、内置对象

目录

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


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值