最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 谈谈JavaScript中对象属性及堆栈的的概念

    正文概述 掘金(南极大冰块)   2021-08-23   480

    这是我参与8月更文挑战的第23天,活动详情查看:8月更文挑战

    前言

    大家好哇,今天我们来谈谈JavaScript中对象属性及堆栈的概念,对于非科班出身的小伙伴而言,这其中的概念还是很容易被搞混的,所以今天我们就来好好谈一下这个问题。

    文章目标

    先来看一下本文的目标吧,大神请绕道,因为本文基本摘自我刚入行时的笔记哦~

    重点

    1. 能够获取和设置对象属性的值
    2. 能够遍历对象
    

    了解

    1. 知道内存中分为栈和堆两个区域
    

    操作对象

    操作对象比较简单,熟练基本的操作对象方法即可。

    获取对象属性的值

    注意: 如果对象中没有的属性,返回的是undefined。

    var obj = {
        name: '小明',
        age: 20
    }
    alert(obj.name)    // '小明'
    alert(obj.sex)     // undefined
    

    给对象添加属性并赋值

    var obj = {
        name: 'ls'
        age: 20
    }
    // 给对象添加属性并赋值
    obj.sex = '男'
    console.log(obj)  // {name: 'ls', age: 28, sex:'男'}
    

    通过中括号语法操作对象的属性

    语法:对象 [ '属性名' ]

    var stu01 = {
      name:'小白',
      age:28,
      sex:true,
      getInfo:function(){
        return '我的名字叫:'+this.name + ',年龄:'+ this.age + ',性别:' + this.sex
      }
    }
    

    获取操作如下:

    alert(stu01.name)    // 小白
    alert(stu01['name'])    // 小白
    alert(stu01.getInfo())    // 我的名字叫小白,年龄28,性别true
    alert(stu01['getInfo']())    // 我的名字叫小白,年龄28,性别true
    

    赋值,以下两种方式书写代码的作用是一样的:

    stu01.name = '小黑'
    stu01['name'] = '小黑'
    

    遍历对象中的所有属性

    var obj = {
        name: 'zs',
        age: 18,
        sayHi:function(){
            console.log('hi');
        }
    };
    
    for(var key in obj) {
      console.log(key + "==" + obj[key]);
    }
    

    删除对象中的某个属性

    var obj = {
         name: 'zs',
        age: 18
    }
    console.log(obj.age)    // 18
    delete obj.age
    console.log(obj.age)    // undefined
    console.log(obj)    // {name: 'zs'}
    

    内存中的栈空间和堆空间

    • 基本数据类型存储在栈空间中
    • 引用数据类型存储在堆空间中

    图解如下:

    谈谈JavaScript中对象属性及堆栈的的概念

    基本数据类型和引用数据类型传参

    基本数据类型赋值

    var num1 = 1;
    var num2;
    num2 = num1;  //把num1的值克隆一份赋值给num2
    console.log(num2); //1
    

    图解如下: 谈谈JavaScript中对象属性及堆栈的的概念

    引用数据类型赋值

    var obj = {
        name: 'zs'
    }
    var num2
    num2 = obj
    console.log(num2) // { name: 'zs'}
    

    图解如下: 谈谈JavaScript中对象属性及堆栈的的概念

    后记

    你好哇,我是南极大冰块,一个技术与颜值成正比的前端工程师,崇尚一针见血的搞定前端问题,希望我的博客有帮助到了你。

    关注我,前端路途一起走。嘿哈~?


    起源地下载网 » 谈谈JavaScript中对象属性及堆栈的的概念

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元