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

**
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)------动态属性、复制变量值、传递参数和检测类型_第1张图片
执行结果:
javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型_第2张图片
    语法(2)字面量的形式: var 对象名 = { };

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

1、动态的属性

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

(1)添加属性

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

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

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

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

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

2、复制变量值

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

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

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

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

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

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

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

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

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

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

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

3、传递参数

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

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

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

4、检测类型 (instanceof)

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

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

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

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

你可能感兴趣的:(js,javascript)