【JavaScript速成之路】JavaScript对象

news2025/2/25 5:28:28

在这里插入图片描述

📃个人主页:「小杨」的csdn博客
🔥系列专栏:【JavaScript速成之路】

🐳希望大家多多支持🥰一起进步呀!


文章目录

  • 前言
    • 1,初识对象
      • 1.1,对象概念
      • 1.2,对象创建
        • 1.2.1,利用字面量创建对象
        • 1.2.2,利用 new Object创建对象
        • 1.2.3,利用构造函数创建对象
      • 1.3,对象访问
      • 1.4,对象遍历
    • 2,内置对象
      • 2.1,对象分类
      • 2.2,内置对象熟悉
      • 2.3,封装对象
  • 结语


前言

📜前言:小杨在上一篇带着大家一起学习了JavaScript中的函数,想必大家对JavaScript的函数知识已经有所了解了,那么今天我们将继续带着大家初识一下JavaScript中的对象的相关知识,希望大家收获多多!


1,初识对象

1.1,对象概念

在现实生活中,对象是一个具体的事物,是一种可以看得见,摸得着的具体事物,例如一个人,一本书。

而在JavaScript中,对象是一种数据类型,它是由属性和方法组成的一个集合。

属性是指事物的特征,而方法是指事物的行为。

例如,在JavaScript中描述一个手机对象,则手机拥有的属性和方法如下所示:

  • 手机的属性:颜色,屏幕尺寸,重量,价钱 …
  • 手机的方法:打电话,发短信,刷视频,玩游戏 …

1.2,对象创建

1.2.1,利用字面量创建对象

在JavaScript中,对象的字面量就是用花括号{ }来包裹对象的成员,每个成员使用“key: value”的形式保存。

key表示属性名或者方法名,value表示对应的值。多个对象成员之间使用逗号隔开。

1,空对象的创建语法

var obj = {};   //空对象的创建

2,非空对象的创建语法

var obj = {
    成员属性名:成员属性对应值;
    成员方法名:成员方法对应值;   
};

3,字面量创建对象示例:

<script>
    //创建一个空对象
    var obj = {};
    //创建一个学生对象
    var stu1 = {
        name: '小杨',             //name属性
        age: 18,                  //age属性
        sex: '男',                //sex属性
        sayHello:function(){      //sayHello方法
            console.log('hello');
        }
    };
</script>

1.2.2,利用 new Object创建对象

1,空对象的创建语法

var obj = new Object();

2,非空对象的创建语法

var obj = new Object();
obj.属性名 = 成员属性对应值;
obj.方法名 = 成员方法对应函数;

3,new Object创建对象示例

<script>
    var obj = new Object();		//创建一个空对象
    obj.name = '小杨';          //创建对象后,为对象添加成员				
    obj.age = 18;
    obj.sex = '男';
    obj.sayHello = function(){
        console.log('Hello');
    }
</script>

1.2.3,利用构造函数创建对象

1,构造函数创建对象语法

//编写构造函数
function 构造函数名(形参列表){
    this.属性 = 属性;
    this.方法 = function(){
        //方法体
    };
}
//使用构造函数创建对象
var obj = new 构造函数名(实参列表);

2,构造函数创建对象示例:

<script>
    //编写一个Student构造函数
    function Student(name,age){
        this.name = name;
        this.age = age;
        this.say = function(){
            console.log('我叫'+ this.name +',今年'+ this.age);
        };
    }
    //使用Student构造函数创建对象
    var stu1 = new Student('小杨',18);
    console.log(stu1.name);
    console.log(stu1.say());

    var stu2 = new Student('小王',16);
    console.log(stu2.name);
    console.log(stu2.say());
</script>

示例结果:

image-20221013184423220

知识点:

  • 在javascript中,函数都会有一个返回值。返回值可以通过return关键字进行设置。
  • 如果函数里不写return,则函数会返回undefined,可以根据需要判断是否有返回值。

1.3,对象访问

在将对象创建好之后,就可以访问对象的成员属性和方法.

1,对象访问语法:

//访问对象的属性法1:
console.log(对象名.成员属性名);
//访问对象的属性法2:
console.log(对象名['成员属性名']);
//访问对象的方法法1:
对象名.成员方法名()
//访问对象的方法法2:
对象名['成员方法名']()

2,对象访问示例:

//访问对象的属性法1:对象名.成员属性名
console.log(stu1.name);
//访问对象的属性法2:对象名['成员属性名']
console.log(stu1['age']);
//访问对象的方法法1:对象名.成员方法名()
stu1.sayHello();
//访问对象的方法法2:对象名['成员方法名']()
stu1['sayHello']();

3,如果对象的成员名中包含特殊字符,则可以用字符串来表示。

<script>
    var obj = {
    'name - age': '小杨 - 18'
    };
    console.log(obj['name - age']);
</script>

示例结果:

image-20221013182854190

4,JavaScript中的对象具有动态特征。如果一个对象没有成员,用户可以手动赋值属性或方法来添加成员。

<script>
    var stu = {};                                //创建应该空对象
    stu.name = '小杨';                           //为对象添加name属性
    stu.introduce = function(){                  //为对象添加introduce方法
        console.log('My name is ' + this.name);  //在方法中使用this代表当前对象
    };
    console.log(stu.name);
    stu.introduce();
</script>

示例结果:

image-20221013232340518

5,如果访问对象不存在的属性时,会返回undefined。

<script>
    var stu = {};          //创建一个空对象stu
    console.log(stu.name);
</script>

示例结果:

image-20221013183954097


1.4,对象遍历

在JavaScript中,使用for … in语法可以遍历对象中的所有属性和方法。

<script>
    //准备待遍历的对象
    var obj = {                   
        name: '小杨',             //name属性
        age: 18,                  //age属性
        sex: '男',                //sex属性
        sayHello:function(){      //sayHello方法
            console.log('hello');
        }
    };
    //遍历对象
    for(var k in obj){
        console.log(k);      //通过k可以获取遍历过程中的属性名和方法名
        console.log(obj[k]); //通过obj[k]可以获取遍历过程中的属性名和方法名所对应的值

    }
</script>

示例结果:

image-20221013233427232

知识点:

  • 在上述代码中,k是应该变量名,可以自定义,习惯上命名为k或者key,表示键名。

  • 当遍历到每个成员时,使用k获取当前成员的名称,使用obj[k]获取对应的值,如果对象中包含方法,则可通过obj[k] ()进行调用。

  • 当需要判断应该对象中的某个成员是否存在时,可以使用in运算符进行判断。当对象成员存在时返回true,不存在时返回false。

<script>
    var obj = {name: '小杨', age: 18};
    console.log('age' in obj);   //判断age成员属性是否在对象里
    console.log('sex' in obj);   //判断sex成员属性是否在对象里
</script>

示例结果:

image-20221013234538058


2,内置对象

2.1,对象分类

JavaScript中的对象分为3种︰自定义对象、内置对象、浏览器对象。

前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于我们JS独有的

内置对象就是指S语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)

内置对象最大的优点就是帮助我们快速开发

JavaScript提供了多个内置对象:Math、Date . Array、string等


2.2,内置对象熟悉

为了方便程序开发,JavaScript提供了很多常用的内置对象,包括数学对象Math,日期对象Date,数组对象Array和字符串对象String…

然而如何快速学习对象中的方法并能熟悉掌握?

由于JavaScript提供的内置对象非常多,且还存在版本更新,浏览器兼容性等各方面的原因,因此学习内置对象最好的方法是查阅网上的最新文档。在这里推荐使用[Mozilla开发者网络(MDN)](MDN Web Docs (mozilla.org))进行学习。

image-20221015233743877

image-20221015234133792

image-20221015234452431

通过文档学习某个方法的使用,具体流程如下:

1)查阅该方法的功能

2)查看括号里面参数的意义和类型

3)查看返回值的意义和类型

4)通过demo进行测试


2.3,封装对象

当内置对象无法满足需求的时候,我们还可以自己封装一个对象,来完成具体需求。

示例:利用对象封装自己的数学对象,里面有 PI 最大值 和 最小值。

<script>
    //利用对象封装自己的数学对象,里面有 PI 最大值 和 最小值
    var myMath = {
        PI: 3.141592653589793,
        max: function() {
            var max = arguments[0];
            for(var i = 1; i < arguments.length; i++){
                if(arguments[i] > max){
                    max = arguments[i];
                }
            }
            return max;
        },

        min: function() {
            var min = arguments[0];
            for(var i = 1; i < arguments.length; i++){
                if(arguments[i] < min){
                    min = arguments[i];
                }
            }
            return min;
        }
    };

    console.log(myMath.PI);     //调用PI属性
    console.log(myMath.max(10,30,20));    //调用max方法
    console.log(myMath.min(10,30,20));    //调用min方法
</script>

示例结果:

image-20221015235844924


结语

这就是本期博客的全部内容啦,想必大家已经对JavaScript对象有了全新地认识和理解吧,如果有什么其他的问题无法自己解决,可以在评论区留言哦!

最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞👍,评论✍,收藏📖),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/408309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手撕前端面试题【JavaScript】

前端的那些基本标签&#x1f353;&#x1f353; 浅拷贝&#x1f353;&#x1f353;简易深拷贝&#x1f353;&#x1f353;深拷贝&#x1f353;&#x1f353;什么是深拷贝&#xff0c;什么是浅拷贝&#xff0c;二者有什么区别&#xff0c;平时改怎么区分呢&#xff1f;&#x1f…

vue3.0本地引入vue.js

第一步获取vue版本 Vue的各种版本介绍&#xff1a; cjs&#xff08;两个版本都是完整版&#xff0c;包含编译器&#xff09; vue.cjs.js vue.cjs.prod.js&#xff08;开发版&#xff0c;代码进行了压缩&#xff09; global&#xff08;这四个版本都可以在浏览器中直接通过…

Vue中 provide、inject 详解及使用

传送门&#xff1a;Vue中 子组件向父组件传值 及 .sync 修饰符 详解 传送门&#xff1a;Vue中 状态管理器&#xff08;vuex&#xff09;详解及应用场景 传送门&#xff1a;Vue中 $ attrs、$ listeners 详解及使用 传送门&#xff1a;Vue中 事件总线&#xff08;eventBus&#x…

New Bing申请与使用教程

&#xff08;1&#xff09;安装 Edge 浏览器插件&#xff1a; 由于在 CN 访问 Bing 国际版会自动跳转到 CN 版&#xff0c;因此需要先重定向浏览器的 Header&#xff0c;先在 Edge 浏览器安装插件&#xff1a;Header Editor&#xff1a; 添加如下配置&#xff08;其中&#xf…

① 尚品汇的后台管理系统【尚硅谷】【Vue】

后台管理系统项目简介 什么是后台管理系统项目&#xff1f; 在前端领域当中&#xff0c;开发后台管理系统项目&#xff0c;并非是Java&#xff0c;PHP等后台语言项目 在前面课程当中&#xff0c;我们已经开发了一个项目【尚品汇电商平台项目】&#xff0c;这个项目主要针对的是…

HTML5+CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮?

转眼从2005年到现在&#xff0c;《亮剑》已经播出多年&#xff0c;但热度依然不减&#xff0c;而且每次重温我都会看出不一样的意蕴&#xff0c;今天&#xff0c;我就用HTML5CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮&#xff1f; 目录 1. 实现思路 2. 素材介绍…

零基础JavaScript学习【第四期】

博主有话说:不知不觉这一已经第四期了,感谢大家的支持。 个人空间:GUIDM的个人空间 专栏内容:零基础JavaScript学习 基础还是关键。 欢迎大家的一键三连。 往期回顾: 前情回顾:第一期https://blog.csdn.net/m0_61901625/article/details/124772807?spm=1001.2014.3001.…

Spring-Security实现登录接口

目录简介原理初探实现思路登录接口实现准备工作编码实现效果展示简介 Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 具体介绍和入门看springSecurity入门 原理初探 在实…

CSS 实现六边形柱状图

前言 &#x1f44f;CSS 实现六边形柱状图 速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义全局css变量&#xff0c;柱状宽度为–w&#xff0c;最大高度为–h&#xff0c;柱形整体为渐变色&#xff0c;定义上部分颜色为…

VUE-webpack超详细教程

一.认识webpack 官网解释&#xff1a;从本质上来讲&#xff0c;webpack是一个现代的JavaScript应用的静态模块打包工具。 从模块化和打包两个角度来理解&#xff1a; 模块化&#xff1a; webpack其中一个核心就是让我们可能进行模块化开发&#xff0c;并且会帮助我们处理模块…

【uni-app导入vant】

uni-app导入vant一、为什么要写这篇文章二、 安装vant三、 进行全局导入Vant组件四、 导入Vant全局公共样式五、 在页面中使用Vant组件一、为什么要写这篇文章 相信有很多人在进行小程序转为uni-app的时候都会遇到转换后vant组件不能用的问题&#xff0c;为了解决这个问题本人…

前端开发:颜色代码速查表【英文颜色、HEX(十六进制)格式、RGB格式、十进制】

&#x1f48c; 作者简介 &#x1f4d6; 个人介绍&#xff1a;小伙伴们&#xff0c;大家好&#xff01;我是水香木鱼&#xff0c;【前端领域创作者】&#x1f61c;&#x1f4dc; CSDN主页&#xff1a;水香木鱼&#x1f4d1; 个人博客&#xff1a;陈春波&#x1f3a8; 系列专栏&…

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作 制作顶部导航栏titleNView的过程。 1.官网上关于顶部导航栏的介绍 https://uniapp.dcloud.net.cn/collocation/pages.html#app-titlenview 其中关于顶部导航栏的介绍中&#xff0c;有如下的说明&#xff1a; 前端…

一学就会的Vue slot插槽,真的不看看吗?(使用脚手架)

目录 一、前言 完整内容请关注&#xff1a; 开始前的准备&#xff1a; 二、slot插槽的基本使用 子组件&#xff1a; 父组件&#xff1a; 展示效果&#xff1a; 三、域名插槽的基本使用 子组件: 父组件: 效果展示: 注意&#xff1a; 四、如何通过slot从子组件获取内…

实测有效防止colab自动断开连接

在Firefox和Chrome中&#xff0c;在colab页面&#xff0c;按CtrlShiti&#xff0c;打开检查页面&#xff08;也可以右击鼠标&#xff0c;选择“检查”&#xff09;&#xff0c;并切换到控制台或terminal标签&#xff0c;chrome中为Console。 如果你是联想电脑&#xff0c;可以…

vue项目中使用mapbox地图,切换底图

如何在vue项目中加载并使用mapbox mapbox用了感觉确实不错&#xff0c;操作很顺滑&#xff0c;矢量切片体验流畅&#xff0c;地图主题定制化地图漂亮&#xff0c;二三维一体化&#xff0c;二三维切换很是简单&#xff0c;一行代码搞定。 基本使用 这是mapbox官方文档地址&am…

CSS伪类选择器

CSS的选择器有很多种&#xff0c;有一种选择器&#xff0c;与其他选择器完全不同&#xff0c;我们来讲一讲这个选择器——伪类选择器 伪类选择器 伪类选择器&#xff1a;用来描述一个元素的特殊状态&#xff01;比如第一个元素、某个元素的子元素、鼠标点击的元素 我们伪类选…

CSS系列之盒子阴影box-shadow(CSS3)

文章の目录1、属性值规则2、取值2.1、inset 内/外阴影2.2、<offset-x> <offset-y>水平阴影/垂直阴影2.3、<blur-radius>模糊距离2.4、<spread-radius>阴影的尺寸2.5、<color>阴影的颜色3、示例4、注意点写在最后用于在元素的框架上添加阴影效果。…

【javaScript】学完js基础,顺便把js高级语法学了(尚硅谷视频学习笔记)

文章目录【1】基本总结深入一、什么是数据1、数据类型基本&#xff08;值&#xff09;类型对象&#xff08;引用&#xff09;类型2、判断相关问题二、什么是内存1、什么是数据2、什么是内存&#xff1f;3、什么是变量4、内存、数据、变量三者之间的关系相关问题1、问题&#xf…

【web系列十一】使用django创建数据库表

目录 基本介绍 Model ORM 创建数据库的流程 安装插件 安装python中操作MySQL的库&#xff0c;这里用了django官方推荐的mysqlclient 创建数据库 连接数据库 1、工程同名app下的settings.py 2、子应用的models.py 3、子应用中的admin.py 生成数据表 1、更新数据表变…