欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型

程序员文章站 2022-04-19 14:15:13
**javascript从入门到跑路-----小文的js学习笔记(1)---------script、alert、document。write() 和 console.log 标签javascript从入门到跑路-----小文的js学习笔记(2)---------语法构成、关键字和保留字、变量javascript从入门到跑路-----小文的js学习笔记(3)---------javascript中的几种数据类型……javascript从入门到跑路-----小文的js学习笔记目录**&nb...

**
javascript从入门到跑路-----小文的js学习笔记(1)---------script、alert、document。write() 和 console.log 标签

javascript从入门到跑路-----小文的js学习笔记(2)--------- 语法构成、关键字和保留字、变量

javascript从入门到跑路-----小文的js学习笔记(3)---------javascript中的几种数据类型


javascript从入门到跑路-----小文的js学习笔记目录
**

       关注小文我们一起学习进步。

      在说动态属性之前我们先来说一下创建对象:

这里只说我目前学到的创建对象的两种方式,一种是创建函数的形式、另一种是字面量的形式

    语法(1)创建函数的形式: var 对象名 = new Object();

注意:这里的object的”O“是大写

示例:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
    语法(2)字面量的形式: var 对象名 = { };

示例:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
         注意:光理论是不够的 ,在此送大家2020最新企业级 Vue3.0/Js/ES6/TS/React/node等实战视频教程,点击此处免费获取,小白勿进哦

1、动态的属性

       当我们创建了对象之后可以自己为其添加属性和方法,因为以前我们学到的比如像数学对象,或者数组它们都是有自己的属性和方法,但是这里是我们自己创建的 对象,所以它的属性和方法也可以由我们自己来创建和添加。

(1)添加属性

语法: 对象.属性名称 = 值 ;

举例:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:这里可以看出我给我们的对象添加了一个name属性为“快乐的小鸭子”
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
(2)添加方法

语法: 对象.方法名称 = function(){ };

添加方法也可以理解为为它封装一个函数

举例:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型

2、复制变量值

     先来了解一个东西我们js的存储分为 基本类型引用类型

基本类型 (存放在栈内存):占用空间固定
引用类型 (存放在堆内存):占用空间不固定

栈内存和堆内存都是存储数据的地方,但是栈内存中存储的值大小是固定的,堆内存中存储的值的大小是不固定的。

栈(基本类型) 堆(引用类型)
String arr (数组)
Number object (对象)
Boolean function (函数)
null 。。。
undefined

当我们复制变量值的时候
(1)如果是引用类型,因为引用类型是是公用一个对象,那么复制的值和原本的值二者会相互影响。

举个例子 :
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:两个对象,第一个对象dx的高为155,然后将其复制为dx2 然后进行弹出可以看出两个对象的high都是“155”.
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
但是呢,如果我们的dx2 长到了170,那么我们原本的数据 dx 也会长到170。

举例:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型

意思就是如果是引用类型的数据,那么复制数据和原数据二者会相互影响。

当我们复制变量值的时候
(2)如果是基本类型的话,相当于就是重新做了一给 和原来一摸一样的东西,二者是单独的,互不影响。

举例:这里我们创建一个基本类型的数据 对它进行复制
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
由于是基本类型的数据,所以复制成功之后,就是单独的个体,二者互不影响

所以
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:二者不会同步生长,number 到170 ,但是不会影响到number1,number 1依旧是155.
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型

3、传递参数

在我们函数中 传递的那个参数,它仅仅只是代表该参数的一个值

举个例子:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
这里我们传递的一个实参dx传进函数,但传递的参数dx仅仅只是一个代表dx的值,它不是对象。

因此在函数中你进行复制,二者也不会相互影响。

4、检测类型 (instanceof)

语法: 检测的数据 instanceof 你认为的数据类型

对数据进行判断,返回的是布尔值,如果匹配返回true,如果不匹配则返回false

举例:
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
执行结果:说明我们的dx就是一个String
荐
                                                        javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型

**
       We always say the years are the same.,but we don’t know whether it is as early as possible.
                                   -------------------------------------------我们总说 岁月如故 却不知道是否如初

本文地址:https://blog.csdn.net/qq_45948983/article/details/107272469