JavaScript】【Web前端基础】JavaScript复杂数据类型是什么意思_第2页回答

2020-12-17 10:17发布

15条回答
爱搞事的IT小男孩
2楼 · 2020-12-19 11:18

JavaScript的数据类型分为基本数据类型和复杂数据类型。其中,基本数据类型: Number(数字),String(字符串),Boolean(布尔),Undefined(未定义),Null(空);复杂(引用)数据类型: Object(对象), Array(数组), Function(函数)。我们可以使用typeof操作符检查变量的类型,语法为typeof(变量)/typeof 变量,typeof返回值: number, string, boolean, undefined, object, function。今天我们来认识下JavaScript中的基本数据类型。


我的网名不再改
3楼 · 2020-12-19 19:07

JAVAscript

数组:

指的是一组有顺序的数据
按理来说:数组的每一个成员可以是任意类型
但是,通常情况下我们只推荐在一个数组中存放同一种数据类型的值

    // 有些情况下,数据的类型又不能一致。比如如果想要记录一个人的信息数据

    var name = "张小花";
    var age = 33;
    var sex = "男";
    var height = 180

    // 以上可以用来描述一个人 但是变量略多 而且当要描述许多人时...12345678

对象:

// 于是 JS就定义了一个对象数据结构 允许使用 key: value作为一组键值对

    // 对象可以有多个key:value对组成
    var MrZhang = {
        name: "张小花", 
        age: 33,
        sex: "男",
        height: 180,
    }
    // 这就叫做对象 
    // 这种编程方式,叫做面向对象
    console.log(MrZhang);12345678910

定义对象

1. 字面量 一组花括号

    // var obj = {};1

2. 构造函数式

    var obj = new Object();
    Object、Array都是内置构造函数
    与之类似的还有 Function、Date、Error、RegExp、String、Number等.123

对象的定义规范:

     1 每一组key:value对之间使用逗号分割
     2 属性名推荐符合变量的命名规范 
     3 如果不符合变量命名规范 必须要加双引号 或者 单引号 
     4 属性值可以是JS中的任何内容 可以是变量 最终会使用变量所保存的值1234

添加属性有两种方式:

      1 点语法 :     obj.age = 13;
      2 方括号语法:   obj[sdfff] = "你好";12

读取属性 也是这两种方式

      1 点语法 :      console.log(obj.age);
      2 方括号语法:   console.log(obj["hello"]);


灰机带翅膀
4楼 · 2020-12-20 09:26

1.在内存中的存储方式

基本数据类型把数据名和值直接存储在栈当中

复杂数据类型在栈中存储数据名和一个堆的地址,在堆中存储属性及值。访问时先从栈获取地址,再到堆中拿出相应的值。

2.不同数据类型作为参数时 函数内部对参数的修改是否改变外部变量的值

(1)基本数据类型作为参数时,函数内部对参数值的修改不会改变外部变量的值

function a(s){//定义以s为参数的函数,返回s的值
    s=100;
    return s;
    }
    var y=1;
    a(y);//y作为参数调用函数a
    console.log(y);//y还是为1

结果还是1因为把y的值给s时是简单的复制了一份,y和s可以单独操作不相互影响

(2)复杂数据类型作为参数时,函数内部对参数值的修改会改变外部变量的值

因为复杂数据类型赋值是把栈中对象的地址赋给变量,函数内外两个变量指向同一个对象,所以只要对象的属性值改变,两个变量值都会改变

function student(age,name,agrde){
    this.age=age;
    this.name=name;
    this.score=agrde;
    }

    var s1=new student(18,"wjq",2);//创建一个student对象

    function a(s){
    s.name="xxx";
    }
    a(s1)//把s1赋给s
    console.log(s1.name);//输出xxx

所以要弄懂js中简单数据类型和复杂数据类型的区别,关键还要搞懂两个在内存中的存储过程。



帅帅马
5楼 · 2020-12-20 19:25

JavaScript分为简单数据类型和复杂数据类型


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

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

2.引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等


嘿呦嘿呦拔萝卜
6楼 · 2020-12-22 11:09

 ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number和String。还有1中复杂的数据类型——Object,shuObject本质上是由一组无序的名值对组成的。

猫的想法不敢猜
7楼 · 2021-01-07 11:00

复杂(引用)数据类型: Object(对象), Array(数组), Function(函数)。我们可以使用typeof操作符检查变量的类型,语法为typeof(变量)/typeof 变量,typeof返回值: number, string, boolean, undefined, object, function。

myy
8楼 · 2021-12-10 10:16

复杂数据类型说明白了就是引用值

相关问题推荐

  • 回答 8

    向一个对象数组里面添加新的属性var arry= [{a:11,b:22,c:33,d:44},{a:11,b:0,c:0,d:44},{a:11,b:22,c:99,d:99}];var arry2=[];arry.map(((item, index)=> {arry2.push(Object.assign({},item,{mess1:item.c,mess2:item.d}))}))cons...

  • 回答 2

    我觉得getTopWindow() 应该是他自己写的函数 mask  应该是getTopWindow()函数中 return 出的一个什么玩意show()  jQuery的显示

  • 回答 9

    如图所示

  • 回答 12

    1、原型对象也是普通的对象,是对象一个自带隐式的 __proto__ 属性,原型也有可能有自己的原型,如果一个原型对象的原型不为 null 的话,我们就称之为原型链 2、 原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链...

  • 回答 6

    使用VS code对JS进行Debug,需要安装一个插件,这个插件是根据你所使用的浏览器来的,不同浏览器对应插件不同,以下是插件对应情况,下载完相应的插件以后还要下载一个live server在浏览器下查看你界面运行效果,记得在到设置里修改下live server的端口号,然...

  • 回答 8
    已采纳

    没有基础,是可以学Java的,在网上也能找到很多免费的视频、学习资料等资源,只不过想要光靠自己摸索学透Java并不容易,最好是找一个比较靠谱的有实训的培训机构。不过,我给你点建议:1.脑子里要有编程思维,2.学习态度要有,3.了解了基本概念后,从图形界面...

  • 回答 7

    假设文本框的id=text1js:document.getElementById(text1).value = 测试;//即可

  • 回答 2

    这两个事件都是在js原生开发时经常会用到的,比如需要对页面dom进行动态处理,这时就需要用到DOMContentLoaded和[removed]事件,大家都知道,就是在dom构建完毕后,才可以对dom元素进行操作,否则会获取不到相应的dom元素,但是DOMContentLoaded和[removed]还...

  • 回答 11

    基本概念CookieCookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到记住密码,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。localStoragelocalStor...

  • 回答 2

    在vscode 头疼的问题是 用浏览器查看网页!会是以文件夹的方式打开的!  我遇到这个问题 我还重新配置了Apache    ! 但是现在可以解决:使用vscode  ==================== 打开cmd   : 在cmd 控制台中输入  :   1.运行cnpm install live-server...

  • 回答 1

    在进行对象之间的合并的时候,就会使用到extend方法进行合并语法结构:$.extend(true,{},对象1,对象2...)但是这里需要考虑一个问题,如果对象间有相同的属性名,就会涉及到哪一个对象和哪一个对象的值覆盖合并的问题,如果对象中的属性值还是一个对象的话,那...

  • 回答 5
    已采纳

    先说下要实现什么功能,比如:限制图片大小不能超过30K,宽高为121x75上面需求提了,然后我直接把代码给你放出来,可以照着下面代码敲一遍试试就知道怎么限制图片宽高了 $(#picFile4).on(change,function(){ var imgFile = this.files[0]; va...

  • 回答 3

    用python爬取近30天百度指数代码均转载,如下:#1.登录url = ‘http://index.baidu.com/’driver = webdriver.Chrome(executable_path=‘C:/Program Files(x86)/Google/Chrome/Application/chromedriver.exe’)driver.get(url)cookieList = [......

  • 回答 7

    基本类型基本类型分为以下六种:string(字符串)boolean(布尔值)number(数字)symbol(符号)null(空值)undefined(未定义)注意:string 、number 、boolean 和 null  undefined 这五种类型统称为原始类型(Primitive),表示不能再细分下去的基本类...

  • 回答 11

    实体类中添加时间转换注解(注意时区问题)12345/**  * 开始时间  */ @JsonFormat(pattern = yyyy-MM-dd HH:mm:ss, timezone=GMT+8) private Date startTime;

  • 回答 5

    实例中包含加、减、乘、除四种运算,由于先乘和除的优先级别高,所以乘和除将首先被运算,接下来是加和减运算。乘和除优先级相同,所以左边的乘法将被先执行,然后是除法,接下来按从左到右的顺序进行加减运算...

没有解决我的问题,去提问