首页 > 编程语言 >JavaScript—简单类型与复杂类型

JavaScript—简单类型与复杂类型

时间:2023-09-01 19:33:15浏览次数:37  
标签:console name 复杂 JavaScript 数据类型 类型 变量 log

简单数据类型的内存分配

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。

(简单)值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型:string,number,boolean,undefined,null。

简单数据类型存放在栈里面

查看代码

        var timer = null;
        console.log(typeof timer);      // 简单数据类型null,返回的是一个空的对象

复杂数据类型的内存分配

引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型。

通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等。

复杂数据类型存放在堆里面

注意:JavaScript中没有堆栈的概念,通过堆栈的方式,可以让大家更容易理解代码的一些执行方式,便于将来学习其他编程语言

简单类型如何传参

简单数据类型传递示例代码
        var num = 1;
        num = 0;
        console.log(num);
        function fn(a) {
            a++;
            console.log(a);
        }
        var x = 10;
        fn(x);
        console.log(x);

函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈

空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变量。

复杂类型如何传参

函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同个堆地址,所以操作的是同一个对象。

复杂数据类型传参示例
         function Person(name) {
            this.name = name;
        }

        function f1(x) {
            console.log(x.name);
            x.name = "李四";
            console.log(x.name);
        }
        var p = new Person("张三");
        console.log(p.name);
        f1(p);
        console.log(p.name);

标签:console,name,复杂,JavaScript,数据类型,类型,变量,log
From: https://www.cnblogs.com/vayenge/p/17474688.html

相关文章

  • JavaScript阶段易踩坑--层级覆盖--var与let使用--事件流(捕获和冒泡)
    刚刚走完JavaScript阶段,感觉挺爽的。但在总结的时候,我发现一些在做网页中容易错的地方,还有一些比较重要的方面。为了避免其他人在这一阶段也遇到这些问题。我今天就着重说一下在JavaScript这一阶段我容易出现的问题,从而让大家在遇到相同问题的时候可以快速解决。一.盒子覆盖问题只......
  • JavaScript中exec()方法详解
    一、RegExp对象的声明及exec()方法的使用声明一个RegExp有两种方式:1)varre=newRegExp(pattern,modifiers);2)varre=/pattern/modifiers;注释:pattern(模式):描述了表达式的模式modifiers(修饰符)用于指定全局匹配、区分大小写的匹配和多行匹配,具体有i、g和m三类,这三类也......
  • 华为交换机接口类型汇总
    接入链路和干道链路如何处理标签!   华为设备默认所有接口的缺省标签为1   只要接口配置有缺省标签,就会对标签做处理交换机链路分为干道链路和接入链路.    接入链路:一条链路一端为二层接口,另外一端为非二层接口.    干道链路:一条链路的两端均为二层接口. ......
  • LatexEasy | JavaScript集成公式编辑器
    在线示例https://latexeasy.com/en/demo/sdk使用方式基础使用方式<iframeid="liveEditor"frameborder="0"style="width:100%;height:400px;border:0;outline:none;"src="https://latexeasy.com/editor"></if......
  • 为什么要对数值类型的特征做归一化
    对数值类型的特征进行归一化是为了确保不同特征之间的数值范围一致,从而有助于机器学习模型更好地理解和处理数据。以下是一些常见的原因和好处:梯度下降:在许多机器学习算法中,如线性回归、支持向量机、神经网络等,都使用梯度下降来最小化损失函数。如果不对特征进行归一化,那些具有......
  • 如何使用javascript制作一个网页端3D贪吃蛇游戏(附源码)
    3D网页版贪吃蛇游戏!下面来具体讲一下如何实现。该游戏使用Hightopo的SDK制作,总共100多行代码,没有WebGL基础的同学们也可很快掌握。场景初始化首先,我们对页面进行初始化,包括初始化3D场景,设置地面网格,以及开启事件监听等。主要代码及注释如下:w=40;//网格间距m=20;//......
  • javascript 两个小于号<<是什么操作符?
    JavaScript中有一个特殊的运算符,被称为“双小于号”。这个运算符的符号是“<<”,作用是将一个数的二进制形式向左移动指定的位数。在移位过程中,右侧的位将会自动补0。双小于号在JavaScript中常常用于进行位运算操作,让我们来了解一下它的具体用法。参考:https://www.yzktw.com.cn/po......
  • Java数据类型(基本数据类型和引用数据类型)
    Java数据分为基本数据类型和引用数据类型.其中基本数据类型有4类8种.基本数据类型:类似于普通的值引用数据类型:传递的是内存的地址对于引用类型来说,声明只会分配一个引用,指向null,当你想使用的时候不能直接引用,必须实例化之后才能使用。否则,会引起空指针exception。基本数......
  • Opcserver 连接 Modbus 设备数据类型设置的探索
     一个电子秤通过modbus串口服务器连接到网络可以用iotclient工具读取到报文但是用kepsrver总是获取不到正确的数据 至此无解决问题头绪后来经网友提醒用modbus poll采集试试连接后数据可以采集到但是看起来怪怪的,都是科学计数法试着调整数据类型,最......
  • What's the difference between Async Await and Promise in JavaScript All In One
    What'sthedifferencebetweenAsyncAwaitandPromiseinJavaScriptAllInOneAsyncvsPromisedemos(......