当前位置: 首页 > news >正文

北京企业建站程序/seowhy培训

北京企业建站程序,seowhy培训,wordpress 更改数据库密码,自己做烘焙的网站编程笔记 html5&css&js 073 JavaScript Object数据类型 一、创建 Object二、Object 类型的属性与方法三、示例四、参考小结 JavaScript 中的 Object 数据类型是该语言中最复杂也最灵活的数据类型之一,它是其他所有内置对象和用户自定义对象的基础。在 JavaS…

编程笔记 html5&css&js 073 JavaScript Object数据类型

  • 一、创建 Object
  • 二、Object 类型的属性与方法
  • 三、示例
  • 四、参考
  • 小结

JavaScript 中的 Object 数据类型是该语言中最复杂也最灵活的数据类型之一,它是其他所有内置对象和用户自定义对象的基础。在 JavaScript 中,几乎任何东西都可以视为对象,包括函数、数组甚至是基本数据类型(通过包装对象)。

一、创建 Object

  1. 使用构造函数创建

    // 使用 new 关键字调用 Object 构造函数创建一个空对象
    let obj1 = new Object();
    // 或者带初始属性
    let obj2 = new Object({ name: 'Alice', age: 30 });// 等同于
    let obj3 = {};
    // 带初始属性
    let obj4 = { name: 'Bob', age: 35 };
    
  2. 使用对象字面量创建
    这是最常见也是最简洁的创建对象的方式,直接用花括号包裹属性名与对应的值。

    let person = {firstName: 'John',lastName: 'Doe',address: {street: '123 Main St.',city: 'Anytown',country: 'USA'},getFullName: function() {return this.firstName + ' ' + this.lastName;}
    };console.log(person.getFullName()); // 输出 "John Doe"
    

二、Object 类型的属性与方法

  • constructor:每个对象实例都有一个 constructor 属性,它指向用于创建该对象的函数引用。

    console.log(person.constructor); // 输出:ƒ Object() { [native code] }
    
  • hasOwnProperty(propertyName):用于检查对象自身(不包括原型链)是否具有指定名称的属性。

    console.log(person.hasOwnProperty('firstName')); // 输出:true
    
  • isPrototypeOf(object):这个方法不是在对象实例上调用,而是在构造函数或任何父级对象上调用,以检查传入的对象是否是其原型链的一部分。

    function Person(name) {this.name = name;
    }let john = new Person('John');
    console.log(Person.prototype.isPrototypeOf(john)); // 输出:true
    
  • propertyIsEnumerable(propertyName):检查给定的属性是否可枚举。

    console.log(person.propertyIsEnumerable('firstName')); // 输出:true
    
  • toLocaleString():返回对象的字符串表示形式,通常依据本地化环境来格式化。

    let dateObj = new Date();
    console.log(dateObj.toLocaleString()); // 输出当前日期时间的本地化格式
    

此外,Object 类型还提供了诸如 toString()valueOf()getOwnPropertyDescriptor()getPrototypeOf()keys()values()entries() 等方法,以及 ECMAScript 6 引入的 Object.assign()Object.create()Object.defineProperties()Object.defineProperty() 等更高级的方法,用于操作对象属性和原型链。

三、示例

let myObject = {a: 1,b: 'two',c: true,method: function() {console.log('Method called on the object!');}
};// 添加动态属性
myObject.d = [1, 2, 3];// 检查属性存在性
console.log(myObject.hasOwnProperty('a')); // 输出:true
console.log(myObject.propertyIsEnumerable('b')); // 输出:true// 调用对象上的方法
myObject.method(); // 在控制台输出 'Method called on the object!'// 获取对象的所有可枚举属性名
console.log(Object.keys(myObject)); // 输出:[ 'a', 'b', 'c', 'method', 'd' ]

四、参考

JavaScript 中的 Object 类型和 C++ 语言中的 object(或类)在概念和实现上有很大的不同,主要区别如下:

  1. 定义与本质

    • JavaScript:在 JavaScript 中,Object 是所有对象的基础类型。每个非原始值都是一个 Object 或是其原型链上的某个对象的实例。这意味着数组、函数、日期等都继承自 Object 原型。在 JavaScript 中,你创建的任何自定义对象也是基于 Object 构造函数的。
    • C++:C++ 是一种静态类型语言,它有类(class)的概念,类是对一组具有相同特征和行为的对象的抽象描述。当你定义一个类时,可以声明成员变量(属性)和成员函数(方法)。C++ 中没有内置的 object 类,但所有的类实例都可以看作是对象。
  2. 动态性与静态性

    • JavaScript:JavaScript 对象是动态的,可以在运行时添加或删除属性,并且支持原型继承(基于原型链的继承机制)。
    • C++:C++ 的对象结构在编译时就已经确定,属性和方法必须在类定义时指定,不能像 JavaScript 那样动态地增加或删除成员。C++ 使用的是类继承机制,子类在编译时就必须明确其父类。
  3. 内存管理

    • JavaScript:JavaScript 引擎自动管理对象的生命周期,通过垃圾回收机制来释放不再使用的对象所占用的内存。
    • C++:C++ 不提供自动垃圾回收机制,程序员需要手动管理对象的内存分配与释放,可以通过构造函数/析构函数、new/delete运算符或者智能指针等方式进行内存管理。
  4. 类型系统

    • JavaScript:JavaScript 是弱类型语言,对象的类型检查较为灵活,变量可以动态改变类型,typeof操作符返回“object”表示非原始类型的值,包括自定义对象和内置对象实例。
    • C++:C++ 是强类型语言,每个对象都有固定的类型,类型转换需要显式进行,编译器会在编译阶段执行严格的类型检查。
  5. 实例化方式

    • JavaScript:使用字面量语法或 new 关键字调用构造函数来创建对象实例。
    • C++:使用 new 关键字结合类名来创建对象实例,也可以通过栈上直接定义(对于局部小对象)或在堆上动态分配。
  6. 面向对象特性

    • JavaScript:尽管不是纯面向对象语言,但提供了封装(通过闭包)、继承(通过原型链或ES6的class关键字)和多态(通过原型委托和函数重载)等功能。
    • C++:全面支持面向对象编程的所有基本特性,包括封装(通过访问修饰符public, private, protected)、继承(通过class派生)、多态(通过虚函数和抽象类)等。同时C++还支持运算符重载等其他面向对象语言不一定具有的特性。

小结

数据类型的概念与定义在不同语言中的区别较大,如果以后学习其他编程语言时注意区分。

相关文章:

编程笔记 html5cssjs 073 JavaScript Object数据类型

编程笔记 html5&css&js 073 JavaScript Object数据类型 一、创建 Object二、Object 类型的属性与方法三、示例四、参考小结 JavaScript 中的 Object 数据类型是该语言中最复杂也最灵活的数据类型之一,它是其他所有内置对象和用户自定义对象的基础。在 JavaS…...

【Linux】基于管道进行进程间通信

进程间通信 一、初识进程间通信1. 进程间通信概念2. 进程间通信分类 二、管道1. 管道概念2. 管道原理3. 匿名管道4. 匿名管道系统接口5. 管道的特性和情况6. 匿名管道的应用(1)命令行(2)进程池 7. 命名管道(1&#xff…...

Vue中间件的讲解案例分析

Vue中间件的讲解案例分析 1. Axios中间件: Axios是一个常用的HTTP客户端,可以与Vue结合使用,处理网络请求和数据获取。您可以创建一个Axios实例,并将其作为Vue的原型属性或插件使用,以便在整个应用程序中共享和使用。…...

【C生万物】C语言分支和循环语句

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…...

Vue代理模式和Nginx反向代理(Vue代理部署不生效)

在使用axios时,经常会遇到跨域问题。为了解决跨域问题,可以在 vue.config.js 文件中配置代理: const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpileDependencies: true,devServer: {port: 7070,prox…...

C语言中的作用域与生命周期

作用域(scope)是程设计概念,通常来说,一段程序代码中所⽤到的名字并不总是有效的,而限定这个名字的可⽤性的代码范围就是这个名字的作用域。 局部变量的作用域是变量所在的局部范围。全局变量的作用域是整个工程&…...

MATLAB计算多边形质心/矩心

前言:不规则四边形的中心 不规则四边形的出心有多种定义,以下是最常见的三种: 1.重心:重心是四边形内部所有顶点连线交点的平均位置。可以通过求解四个顶点坐标的平均值来找到重心。 2.质心:质心是四边形内部所有质点…...

IP地址如何保护网络安全

面对网络攻击时,仅依靠常态化的网络安全防御系统已捉襟见肘,如联合使用IP地址数据可以形成多元化的安全解决方案,全面监控网络活动,发现潜在威胁,制定有针对性的应对措施。 网络攻击追踪 当网站或应用遭受DDoS等网络攻…...

考研数据结构笔记(3)

顺序表存储结构 存储结构顺序结构定义基本操作的实现静态分配问题 动态分配代码功能 顺序表的特点: 顺序表小结顺序表的插入删除插入删除小结 顺序表的查找按位查找按值查找小结 存储结构 顺序结构 定义 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列(每个数据元素…...

第二讲 数据结构 AcWing 827. 双链表

目录 双链表代码 && 思路 双链表 实现一个双链表,双链表初始为空,支持 5 种操作: 在最左侧插入一个数; 在最右侧插入一个数; 将第 k个插入的数删除; 在第 k 个插入的数左侧插入一个数&#xff1b…...

假期作业 2月6号

一、填空题 1、一个类的头文件如下所示&#xff0c;num初始化值为5&#xff0c;程序产生对象T&#xff0c;且修改num为10&#xff0c;并使用show()函数输出num的值10。 #include <iostream.h> class Test { private: static int num; public: Test(int); void show(); };…...

【wu-lazy-cloud-network】Java自动化内网穿透

项目介绍 wu-lazy-cloud-network 是一款基于&#xff08;wu-framework-parent&#xff09;孵化出的项目&#xff0c;内部使用Lazy ORM操作数据库&#xff0c;主要功能是网络穿透&#xff0c;对于没有公网IP的服务进行公网IP映射 使用环境JDK17 Spring Boot 3.0.2 功能 1.内网…...

【C++】C++入门(二)

个人主页 &#xff1a; zxctsclrjjjcph 文章封面来自&#xff1a;艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 缺省参数2.1 缺省参数概念2.2 缺省参数分类 3. 函数重载3.1 函数重载概念3.2 C支持函数重载的原理--名字修饰(name Mangling) 1. 前言 在前面一篇文章中简…...

6.electron之上下文隔离,预加载JS脚本

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 将 Chromium 和 Node.js 嵌入到了一个二进制文件中&#xff0c;因此它允许你仅需一个代码仓库&#xff0c;就可以撰写支持 Windows、…...

【翻译】 Processing的安卓项目构建(译者用的是Android Studio)

原文链接&#xff1a;https://github.com/processing/processing-android/wiki/Building-Processing-for-Android&#xff0c;版本Apr 2, 2023 译者声明&#xff1a;这个文档是开源公开的&#xff0c;协议是GNU协议。译者自己得使用这个文档&#xff0c;所以才翻译的&#xff0…...

华为机考入门python3--(8)牛客8-合并表记录

分类&#xff1a;字典排序 知识点&#xff1a; 将输入转成int的列表 my_list list(map(int, input().strip().split( ))) 将列表转为元组 tuple(my_list) 访问元素为元组的列表 for first, second, third in my_list: 对字典进行排序 sorted(my_dict.items())…...

vue3-内置组件-KeepAlive

KeepAlive <KeepAlive> 是一个内置组件&#xff0c;它的功能是在多个组件间动态切换时缓存被移除的组件实例。 基本使用 默认情况下&#xff0c;一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时&#xff0c;会创建…...

RxJava Subject

目录 AsyncSubjectBehaviorSubjectPublishSubjectReplaySubjectSerializedSubjectUnicastSubject 在Rxjava中&#xff0c; Subject可以同时表示Observer和Observable, 允许从单个源到多个子观察者multiple child Observers。 除了 onSubscribe(io.reactivex.disposables.Dispos…...

[N-141]基于springboot,vue网上拍卖平台

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vueelementUI 服务端技术&#xff1a;springbootmybatis-plusredi…...

新能源光伏发电设计全面解析

伴随碳达峰、碳中和“双碳”政策大力推行&#xff0c;以及新能源市场的利好&#xff0c;目前多个城市在大力推进光伏发电项目&#xff0c;本篇文章将详细介绍关于光伏发电设计的信息。 一、光伏发电概念 光伏发电是指利用太阳辐射能在太阳能电池板上产生的电能&#xff0c;通…...

踩坑实录(Third Day)

临近年关&#xff0c;同事们该回家的也都回家了&#xff0c;所以我对工作的欲望不是很强烈&#xff0c;所以就主要是自己学习了一下&#xff0c;在 B 站看看视频&#xff0c;自己敲代码&#xff0c;所以今天没遇到什么坑&#xff0c;但是可以分享一下之前踩到的两个坑。 此为第…...

Linux联网安装MySQL Server

yum安装 以下代码复制粘贴到控制台即可 yum list | grep mysql-server #查看可以下载的MySQLyum install -y mysql-server #安装MySQLmysql_secure_installation #引导安装 引导安装实例如下 systemctl enable mysqld 设置开机自动启动 systemctl sta…...

使用GDI画图片生成合成图片并调用打印机进行图片打印

使用GDI画图片生成合成图片并调用打印机进行图片打印 新建窗体应用程序PrinterDemo&#xff0c;将默认的Form1重命名为FormPrinter&#xff0c;添加对 Newtonsoft.Json.dll用于读写Json字符串 zxing.dll&#xff0c;zxing.presentation.dll用于生成条形码&#xff0c;二维码…...

【PyQt】04-Designer

文章目录 前言一、初级 Designer1.1 拖拽设计界面1.2 搞定之后记得保存ui文件1.3 载入代码1.4 运行结果 二、登入界面代码效果展示账号密码错误时账号和密码正确 总结 前言 自然还是跟着王铭东老师学的 一、初级 Designer 1.1 拖拽设计界面 进度条是这个 1.2 搞定之后记得保…...

第4节、电机多段转动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍用控制步进电机三个主要参数角度、速度、方向&#xff0c;实现简单的步进电机多段控制 一、目标功能 输入多个目标角度&#xff0c;以及每个角度对应的速度&#xff0c;实现步进电机的多段多速…...

算法学习——华为机考题库1(HJ1 - HJ10)

算法学习——华为机考题库1&#xff08;HJ1 - HJ10&#xff09; HJ1 字符串最后一个单词的长度 描述 计算字符串最后一个单词的长度&#xff0c;单词以空格隔开&#xff0c;字符串长度小于5000。&#xff08;注&#xff1a;字符串末尾不以空格为结尾&#xff09; 输入描述&…...

PSQL常用操作

目录 前言 准备工作 添加postgres用户 初始化数据库 启动服务 创建数据库 psql连接数据库 常规操作 数据库 schema相关 插件 其他 前言 老折腾&#xff0c;还是记录点啥吧...... 基于本地PG数据库(打包为绿色版本了)&#xff0c;实操记录&#xff0c;版本pgsql12…...

C++ “万能血“ void*指针

本篇文章我们来介绍一下C “万能血” void指针 为什么说他万能呢&#xff1f; 原因:C void* 是一种特殊的指针类型&#xff0c;可用于存放任意对象的地址。在函数传参中也可以作为任何实参的形参 void型详细介绍 void* 是C中的一种特殊的指针类型&#xff0c;被称为"无类…...

微信小程序新手入门教程四:样式设计

WXSS (WeiXin Style Sheets)是一套样式语言&#xff0c;用于描述 WXML 的组件样式&#xff0c;决定了 WXML 的组件会怎么显示。 WXSS 具有 CSS 大部分特性&#xff0c;同时为了更适合开发微信小程序&#xff0c;WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比&#xff0c;WXSS …...

类银河恶魔城学习记录1-6 Flip基本设置源代码 P33

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; us…...