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

十一、JavaScript简单数据类型和复杂数据类型

一、简单类型与复杂类型

在这里插入图片描述

        // 简单数据类型  null  返回的是一个空的对象  object
        var timer = null;
        console.log(typeof timer);  // object
        // 如果有个变量我们以后打算存储为对象,暂时没想好放啥,这个时候就给 null

二、堆和栈

在这里插入图片描述

三、复杂类型的内存分配

1.简单数据类型 是存放在栈里面 里面直接开辟一个空间存放的是值
2.复杂数据类型 首先在栈里面存放地址 十六进制表示 然后这个地址指向堆里面的数据
在这里插入图片描述

四、简单类型传参

函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变量。

        function fn(a) {
            a++;
            console.log(a);  // 11
        }
        var x = 10;
        fn(x);
        console.log(x);  // 10

五、复杂类型传参

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

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

        function f1(x) {
            console.log(x.name);  // 2. 刘德华
            x.name = "张学友";
            console.log(x.name);  // 3. 张学友
        }
        var p = new Person("刘德华");
        console.log(p.name);  // 1. 刘德华
        f1(p);
        console.log(p.name);  // 4. 张学友

相关文章:

  • 材料科学基础:空间群与点群(1)
  • flutter 获取设备的唯一标识
  • 数仓开发那些事(11)
  • chrome-driver安装
  • 【商城实战(77)】商城智能客服系统搭建指南:选型与集成全攻略
  • 大模型有哪些算法
  • 注释容易混淆?修改vscode注释颜色,自定义你的专属颜色
  • Spring Cloud Kubernetes :云原生与容器化部署实战
  • SpringMVC实战——转发和重定向及实际场景
  • Linux中磁盘的管理
  • 对人工智能祛魅了
  • resetForm() 方法用于重置表单
  • 信息隐藏技术
  • Web Services 简介
  • 智能粉尘监测解决方案|守护工业安全,杜绝爆炸隐患
  • 什么是 JavaScript 中的 this 关键字?
  • VS2022 Qt 项目使用数据库报错问题
  • python(26) : 文件上传及下载和预览
  • Spring容器从启动到关闭的注解使用顺序及说明
  • LVS的三种工作模式简述
  • 做教育网站多少钱/seo营销策略
  • 做做网站/谷歌广告推广
  • 数字展馆/seo模拟点击算法
  • 佛山网站制作做多少钱/关键词推广工具
  • 怎么网站能找人做装修事/微信推广怎么弄
  • h5网站如何做排名/杭州百度整站优化服务