四十六——五十一

news2024/10/2 8:39:10

四十六、JavaScript——对象

一、对象

  • 数据类型:

                原始值

                    1. 数值  Number

                    2. 大整数 BigInt

                    3. 字符串 String

                    4. 布尔值 Boolean

                    5. 空值 Null

                    6. 未定义 Undefinded

                    7. 符号 Symbol

            除了七种原始值之外,后面所用到的数据类型,都统称为对象


 

  • 原始值只能用来表示一些简单数据,如性别,年龄,不能表示复杂数据

  • 对象         

                - 对象是JS中一种复合数据类型

                    它相当于一个容器,在对象中可以存储不同的类型数据,

                        例如对象中可以存储人的姓名、身高、年龄

  • 对象中可以存储多个各种类型的数据
  1. 对象中存储的数值,我们称之为属性
  2. 创建一个对象(new可省略)

                    let 对象名  = new Object

  3. 向对象中添加属性

                    对象.属性名 = 属性值

  4. 读取对象中的某个属性

                    对象.属性名

                        - 如果读取的是对象中没有的属性

                            不会报错而是报undefinded

  5. 修改对象中的某个属性:命名新的,会产生覆盖

                    对象.属性名 = 新的属性值

  6. 删除属性

                    delete 对象.属性名                      

 <script>
        /*
            数据类型:
                原始值:
                    1. 数值  Number
                    2. 大整数 BigInt
                    3. 字符串 String
                    4. 布尔值 Boolean
                    5. 空值 Null
                    6. 未定义 Undefinded
                    7. 符号 Symbol

            除了七种原始值之外,后面所用到的数据类型,都统称为对象


            原始值只能用来表示一些简单数据,如性别,年龄,不能表示复杂数据

            对象
                - 对象事JS中一种复合数据类型
                    它相当于一个容器,在对象中可以存储不同的类型数据,
                        例如对象中可以存储人的姓名、身高、年龄
        
        */

    

        /*
            对象中可以存储多个各种类型的数据
                对象中存储的数值,我们称之为属性

            创建一个对象(new可省略)
                let 对象名  = new Object

            向对象中添加属性
                对象.属性名 = 属性值


            读取对象中的某个属性
                对象.属性名
                    - 如果读取的是对象中没有的属性
                        不会报错而是报undefinded

            修改对象中的某个属性:命名新的,会产生覆盖
                对象.属性名 = 新的属性值
            
            删除属性
                delete 对象.属性名
            
        */

            // 创建对象
        let obj = new Object()

        obj.name = "张三"
        obj.age = 10
        obj.gender = "男"

        console.log(obj)

        //读取对象中的某个属性
        console.log(obj.name)

        //修改属性
        obj.name = "李四"

        //删除属性
        delete obj.name

        console.log(obj.name)


    </script>

 四十七、JavaScript——对象的属性

一、属性

  • let 属性名 = new Object()

            属性名  

                - 通常属性名就是一个字符串,所以属性名可以实任何值,没有什么特殊要求

                    但是如果取得名字太特殊了,不能直接使用,需要用[]来包裹

                    虽然如此,但是我们还是强烈建议属性名也按照标识符规范命名

               

  • 也可以使用符号(symbol)作为属性名,来添加属性

                    获取这种属性时,也必须使用Symbol

                - 使用Symbol添加的属性,通常是那些不希望呗外界访问的属性

  • - 使用[]去操作属性时,可以使用变量,中括号中的变量不需要添加引号

  • 使用typeof检查一个对象时,返回object

  • in 运算符

                    - 用来检测对象中是否含有某个属性

                    - 语法 属性名 in 对象名

                    - 如果有返回true,没有返回false

  • 使用符号(symbol)作为属性名,来添加属性

                    获取这种属性时,也必须使用Symbol

                - 使用Symbol添加的属性,通常是那些不希望呗外界访问的属性

 

<script>

        /*
            let 属性名 = new Object()

            属性名  
                - 通常属性名就是一个字符串,所以属性名可以实任何值,没有什么特殊要求
                    但是如果取得名字太特殊了,不能直接使用,需要用[]来包裹
                    虽然如此,但是我们还是强烈建议属性名也按照标识符规范命名

                
                - 也可以使用符号(symbol)作为属性名,来添加属性
                    获取这种属性时,也必须使用Symbol
                - 使用Symbol添加的属性,通常是那些不希望呗外界访问的属性

        */

       let obj = new Object()

       console.log(obj)

       //使用symbol作为属性名,得到Symbol对象
       let mySymbol = Symbol()

       //使用symbol作为属性名
       obj[mySymbol] = "通过symbol添加的属性"

       console.log(obj[mySymbol])



    </script>
  • - 使用[]去操作属性时,可以使用变量,中括号中的变量不需要添加引号 

 

<script>

        /*
            let 属性名 = new Object()

            属性名  
                - 通常属性名就是一个字符串,所以属性名可以实任何值,没有什么特殊要求
                    但是如果取得名字太特殊了,不能直接使用,需要用[]来包裹
                    虽然如此,但是我们还是强烈建议属性名也按照标识符规范命名

                
                - 也可以使用符号(symbol)作为属性名,来添加属性
                    获取这种属性时,也必须使用Symbol
                - 使用Symbol添加的属性,通常是那些不希望呗外界访问的属性

                - 使用[]去操作属性时,可以使用变量,中括号中的变量不需要添加引号

            属性值
                - 对象的属性值可以是任意得而数据类型,也可以是一个对象

        */

    //    let obj = new Object()

    //    console.log(obj)

    //    //使用symbol作为属性名,得到Symbol对象
    //    let mySymbol = Symbol()

    //    //使用symbol作为属性名
    //    obj[mySymbol] = "通过symbol添加的属性"

    //    console.log(obj[mySymbol])

    
    let obj = new Object()

    let str = "address"

    obj[str] = "南京"

    console.log(obj)

    </script>
  • in 运算符

                - 用来检测对象中是否含有某个属性

                - 语法 属性名 in 对象名

                - 如果有返回true,没有返回false

 console.log("name" in obj)

 四十八、JavaScript——对象的字面量

一、字面量{}

  •    对象字面量
  1.  可以使用{} 来创建对象
  2. 使用{}创建对象,可以直接向属性中添加对象
  3. 语法:

                    {

                        属性名:属性值,

                        ["属性名"]: 属性值,

                    }

  •  关于["属性名"]: 属性值,  中属性值是否要带双引号
  • 如果是直接命名的属性值,则需要带双引号,例如属性名为["age"]: 属性值
  • 而像引用创建好的对象时,不用双引号              

                 //使用symbol作为属性名,得到Symbol对象
                       let mySymbol = Symbol()

               //使用symbol作为属性名
                       obj[mySymbol] = "通过symbol添加的属性"


    <script>

    /*

        对象字面量
            - 可以使用{} 来创建对象
                语法:let 属性名 = {}
            - 使用{}创建对象,可以直接向属性中添加对象
            - 语法:
                {
                    属性名:属性值,
                    ["属性名"]: 属性值,
                }

    */



    //使用{} 来创建对象
    let objs = {}

    //使用{}创建对象,可以直接向属性中添加对象
    let objec = {
        name: "张三",

        ["age"]: 18,
    }

    console.log(objec)

    </script>

四十九、JavaScript——枚举对象中的属性

一、枚举属性

  • 枚举属性:将对象中属性全部获取

            for-in语句

            - 语法

                for(let propName in 对象){

                    语句。。。

                    console.log(proName,obj[proName])

                    console.log(属性名,属性值)

                }

            - for-in的循环体会执行多次,有几个属性会执行几次

                每次执行时都会将一个属性名赋值给我们定义的变量

  •  注意:

                - 并不是所有的属性都可以枚举,比如:使用符号添加的属性不能枚举[Symbol()]

 

  <script>
        /*
            枚举属性:将对象中属性全部获取

            for-in语句
            - 语法
                for(let propName in 对象){
                    语句。。。

                    console.log(proName,obj[proName])
                    console.log(属性名,属性值)
                }

            - for-in的循环体会执行多次,有几个属性会执行几次
                每次执行时都会将一个属性名赋值给我们定义的变量

            注意:
                - 并不是所有的属性都可以枚举,比如:使用符号添加的属性不能枚举[Symbol()]



        */

        let obj = {
            name: "张三",
            age: 11,
            gender: "男",
           // [Symbol()]:"测试的属性" //符号添加的属性不能枚举

        }

        for(let propName in obj){

            //枚举属性名,属性值
            console.log(propName,obj[propName])
        }

    </script>

五十、JavaScript——可变类型

一、可变类型

  • 定义:可变类型值指的是对象中的属性名和属性值是可以改变的

  • 在创建对象时,对象的属性和属性值在内存中也相当于一个表格的映射关系,而真正的属性值也是由内存中开辟一个空间来存储,而表格中存储的是内存地址

  • 原始值都属于不可变类型,一旦创建无法修改

            在内存中,不会重复创建重复的原始值

  • 对象属于可变类型

                    - 变量和内存中存的都是内存地址

                    - 可变类型值指的是对象中的属性名和属性值是可以改变的

                注意

                    - 如果两个变量指向同时指向同一个对象

                        通过一个变量修改对象时,另一个对象也会发生改变(内存地址发生改变)

                    

  • 当对两个对象进行相等或者全等的比较时,比较的是内存地址,

  • 当修改一个对象时,所有指向该对象的变量都会发生改变

  • 当对两个对象进行相等或者全等的比较时,比较的是内存地址 

 

   <script>
        /*
            原始值都属于不可变类型,一旦创建无法修改
            在内存中,不会重复创建重复的原始值


            

        */

    
        /*
            对象属于可变类型
                - 变量和内存中存的都是内存地址
                - 可变类型值指的是对象中的属性名和属性值是可以改变的
            注意:
                - 如果两个变量指向同时指向同一个对象
                    通过一个变量修改对象时,另一个对象也会发生改变(内存地址发生改变)

                - 当对两个对象进行相等或者全等的比较时,比较的是内存地址,
        */

        let obj = new Object()

        obj.name = "张三"

        let obj2 = new Object()



        let obj3 = new Object()

        console.log(obj2 === obj3)

    </script>

五十一、JavaScript——变量和对象

一、变量和对象

修改对象

                - 修改对象时,如果有其他变量指向该对象

                    则所有指向对象的变量会受到影响

           

            修改变量

                - 修改变量,只会影响当前的变量

           

            在使用变量存储对象时,很容易因为改变变量指向的对象,提高代码的复杂度

                所以通常情况下,声明存储对象的变量会使用const

            注意:  

                const只是禁止变量赋值,禁止改变量,而修改对象时允许的

                因为是const obj 所以obj的变量名和地址是固定的 额不可修改的

<script>

        /*
            修改对象
                - 修改对象时,如果有其他变量指向该对象
                    则所有指向对象的变量会受到影响
            
            修改变量
                - 修改变量,只会影响当前的变量
            
            在使用变量存储对象时,很容易因为改变变量指向的对象,提高代码的复杂度
                所以通常情况下,声明存储对象的变量会使用const

            注意:  
                const只是禁止变量赋值,禁止改变量,而修改对象时允许的
                因为是const obj 所以obj的变量名和地址是固定的 额不可修改的
            
            
        */

        let obj = {
            name:"张三",

        }

        let obj2 = obj

        obj2.name = "李四"  // 修改对象
        
        obj = { }  //修改变量。创建了一个新的对象






    </script>

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

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

相关文章

吐槽嫌弃测试周期太长?开发自测一下

互联网产品竞争激烈&#xff0c;在生存的巨大压力之下&#xff0c;策划和运营人员们恨不得每一个需求都能秒级上线&#xff0c;这就给研发团队带来了巨大的压力。 有时候&#xff0c;产品的老大很关注某一个功能点&#xff0c;希望能尽快上线&#xff0c;可是&#xff0c;他发…

基于nodejs电影售票后台管理的设计和实现.zip(论文+源码+ppt文档+视频录制)

相关资料下载地址&#xff1a;请点击下载》》》 一、 项目介绍 5 二、 需求分析 6 1、 前端需求 6 2、 后端需求 6 3、 开发环境 7 三、 技术介绍 7 1、 Vue 7 2、 ElementUI 7 3、 NodeJS 7 4、 MySQL 8 四、 功能实现 8 1、 前端服务构建 8 2、 前端API接口封装 8 3、 前端路…

技术分享 | 掌握高频 Docker 命令,夯实内功基础

本文为霍格沃兹测试学院学院学员 Docker 实战课程学习笔记&#xff0c;供各位同学参考。 在 Dokcer 横空出世之前&#xff0c;应用打包一直是大部分研发团队的痛点。在工作中&#xff0c;面对多种服务&#xff0c;多个服务器&#xff0c;以及多种环境&#xff0c;如果还继续用传…

我的头条四面:测试工程师调岗测试开发工程师,发生了什么?

早就听说头条是算法大厂手撕代码恐怖如斯&#xff0c;进入玻璃房之前做好了心理准备&#xff0c;本次头条面试总共是四面&#xff0c;一二三技术面HR面&#xff0c;总体感觉也还不错&#xff0c;面试的是测试工程师&#xff0c;最后拿到的offer却是测试开发工程师&#xff0c;从…

Mysql主从同步时Slave_SQL_Running状态为Yes , 但是Slave_IO_Running状态为Connecting以及NO的情况故障排除

1. 环境说明 主机IP : 192.168.154.146 从机1IP : 192.168.154.147 从机2IP : 192.168.154.148 2.故障记录 当使用Navicat工具打开这三个数据库时 , 发现主库和从库的数据不同 3.排查过程-(Slave_IO_Running状态为Connecting) 3.1 网络是否互通 互ping三台机器 , 看机器…

Python自由职业可以做什么?副业月入3000的快乐你根本想象不到

很多有时间的程序员都会在业余时间接一些“私活”&#xff0c;也就是我们说的副业&#xff01; 毕竟虽然程序员加班时间长&#xff0c;但是也不是所有程序员都是需要997的…许多事业编制或者说一部分公司并不会出现特别夸张的加班时长。平常周末的时候也就会接一些副业&#x…

如何用Python操作PDF制作数据报告?

大家好&#xff0c;你是否会发现 Python 操作PDF文档内容&#xff0c;主要围绕PDF文档的内容提取、合并与拆分、加密与解密、添加水印以及不同文档格式相互转换来展开。 但大家会发现&#xff0c;其中并没有有太多直接操作PDF并向其写入的内容。这是因为我们更推荐大家Python自…

C语言练习之计算一个数的每位之和(递归实现)

目录 前言 一、思路 二、源代码以及运行截图 源代码&#xff1a; 运行截图&#xff1a; 总结 前言 写一个递归函数DigitSum(n)&#xff0c;输入一个非负整数&#xff0c;返回组成它的数字之和 例如&#xff0c;调用DigitSum(1729)&#xff0c;则应该返回1 7 2 9&#…

LeetCode HOT 100 —— 297.二叉树的序列化与反序列化

题目 序列化是将一个数据结构或者对象转换为连续的比特位的操作&#xff0c;进而可以将转换后的数据存储在一个文件或者内存中&#xff0c;同时也可以通过网络传输到另一个计算机环境&#xff0c;采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。…

你还以为格子衫头发的就是程序员?这些特征都没有别说你是程序员

周一写几百个bug&#xff0c;周二到周四拼命改bug&#xff0c;周五总结bug&#xff0c;总结的好有周末&#xff0c;总结的不好周末无休&#xff01; 咳咳&#xff0c;这样的周末我可以不休息&#xff01; 有很多想要学习Python却找不到途径的朋友&#xff0c;我这里整理了一…

.NET Framework杂记

这篇博客主要记录在用C#编写上位机时&#xff0c;不会的知识点&#xff0c;随时更新&#xff0c;方便查阅。 C#语法操作杂记c#中让textbox选中不选中C#无法使用实例引用来访问成员解决方法针对不同定义情况的引用解释C# 字符串分割用字符串分割用多个字符串分割用单字符分割C#中…

【DevOps实战系列】第二章:详解Gitlab环境及搭建

个人亲自录制全套DevOps系列实战教程 &#xff1a;手把手教你玩转DevOps全栈技术 gitlab就不多说了&#xff0c;这个东西现在大多数公司内部都在使用&#xff0c;它分为社区和企业版本&#xff0c;社区版本ce是免费的&#xff0c;当然也可以选择gitee或github&#xff0c;但由于…

非零基础自学Golang 第8章 包管理 8.6 包的命名 8.7 依赖包管理

非零基础自学Golang 文章目录非零基础自学Golang第8章 包管理8.6 包的命名8.7 依赖包管理第8章 包管理 8.6 包的命名 每个包都有一个包名&#xff0c;包名一般是短小的名字&#xff0c;在包的声明处指定。 通常来说&#xff0c;默认的包名就是包导入路径名的最后一段&#x…

AD20和立创EDA设计(5)立创EDA导出3D模型放入AD20使用

&#xff08;1&#xff09;本文主要介绍如何将从立创EDA导出的3D模型&#xff0c;并且对3D模型进行处理。 &#xff08;2&#xff09;需提前观看&#xff1a;AD20和立创EDA设计&#xff08;4&#xff09;PCB设计&#xff1b; &#xff08;3&#xff09;本文需要使用到Fusion 36…

基于6自由度飞行器的EKF和INS融合算法的MATLAB仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 六自由度四轴飞行器,包括由四根杆组成的正四面体,所述正四面体的中心位置设有一个空心圆球,空心圆球上设有四根支杆分别与正四面体的四个顶点相连,所述空心圆球内设有电池和控制系统, INS/GPS的松…

nodejs+vue041家政管理系统

基本要求&#xff1a;要求此系统能较完善的实现服务人员及客户信息的管理等功能。 主界面&#xff1a;分为用户登陆和管理员登陆&#xff0c;用户登陆包含客户登录和服务人员登陆。 用户注册&#xff1a;注册时可选择身份&#xff08;客户或者服务人员&#xff09;。 后台管…

目前免费用可用的天气api接口及失效接口

网上关于免费天气api接口很多&#xff0c;本人总结了一下目前还可用的免费api接口和已失效的接口如下&#xff1a; 目前可用接口&#xff1a; 1、讯飞语音识别内置的墨迹天气API。链接&#xff1a; http://autodev.openspeech.cn/csp/api/v2.1/weather?openIdaiuicus&c…

【Javaweb-前端】CSS

1. Syntax Selector − A selector is an HTML tag at which a style will be applied. This could be any tag like or etc.Property − A property is a type of attribute of HTML tag. Put simply, all the HTML attributes are converted into CSS properties. They coul…

散热材料产业SWOT分析:5G建设带动市场需求 多元化散热方案将成行业主流

传统散热材料以石墨片和导热凝胶等TIM材料&#xff08;导热界面材料&#xff09;为主&#xff0c;石墨片存在导热系数相对较低、厚度相对较大等问题。目前热管和VC&#xff08;均热板&#xff09;开始从电脑、服务器等领域渗透到智能手机终端&#xff0c;石墨烯材料也开始应用。…

Docker笔记--容器转换为镜像、Dockerfile的使用

目录 1--使用 docker commit 将容器转换为镜像 1-1--容器转换为镜像 1-2--实例代码 1-3--注意事项&#xff1a; 2--Dockerfile的使用 2-1--常用关键字 2-2--利用 dockerfile 搭建 Centos:7 镜像 1--使用 docker commit 将容器转换为镜像 1-1--容器转换为镜像 # 将容器…