day04原生js 数组和对象

函数的属性

  • name 表示函数名称
  • length 表示形参的长度

引用类型与值类型的区别

  • 存储
    • 值类型存储在栈内存中
    • 引用类型存储在堆内存中
  • 比较
    • 值类型比较的是值
    • 引用类型比较的是地址
  • 传递参数
    • 函数内操作的值类型与函数外无关
    • 函数内操作引用类型
      • 如果是通过点语法 方括号语法 方法进行操作 会影响到函数外部的值
      • 如果是用等号(= 赋值符号)对函数内的变量进行修改 则不会影响到函数外

数组

  • 一组有顺序的数据

数组的定义

  • 字面量 []
  • 构造函数 new Array()
    • 如果只有一个参数并且是数字 那么会当作数组的长度
    • 其它情况都是当作数组成员

数组的属性

  • length 属性 表示数组的长度
    • length属性可读可写
      • 当把length变长时,会多出许多空值
      • 当把length变短时,会切掉一部分尾部的数据

数组的方法

  • arr[5] = 6; #通过方法增加一项
  • push 尾增 #返回值是数组的长度
  • pop 尾删 #并返回该项
  • shift 头删 #并返回该项
  • unshift 头增 #并返回数组的长度
  • concat 拼接 #返回值是连接完毕的新数组,它不会改变原来的数组
    • 参数个数不定 如果参数中有数组 会把数组拆开
  • reverse 将数组中的每一个成员逆序 #返回值是原数组 也会影响到原数组
  • sort 排序方法 通常用于数字 参数是函数 函数中有a b #返回值是连接完毕的新数组,它不会改变原来的数组
    arr.sort(function(a, b) {
    return b - a;
    });
    • 如果返回a -b 升序排列
    • 如果返回 b - a 降序排列
    • 如果不传递函数 则按照首位数字进行排序
  • slice 用于截取数组中的一段 #返回截取的数组
    • 第一个参数是开始截取的位置
    • 第二个参数是结束截取的位置(不包含该位置的成员)
    • 如果参数是负数 则从后往前数
    • 如果不传递第二个参数 则从第一个参数截取到最后
    • 如果没有参数 就截取全部
  • splice 用于数组的增、删、改 #返回操作后消失的参数,否则 为新增的参数
    • 第一个参数表示开始操作的位置
    • 第二个参数表示删除的个数
    • 之后的每一个参数都表示数组的新成员(如果是数组 不拆)
    • 如果没有第二个参数 则默认从第一个参数截取到末尾
  • join 用于将数组转为字符串 #返回拼接后的字符串
    • 参数是拼接符号 参数默认是 “,”

循环数组

  • for 循环

二维数组(了解)

一维数组中的每一位都是数组 这样的数组叫做二维数组

对象

// 数组:指的是一组有顺序的数据。
// 按理来说:数组的每一个成员可以是任意类型
// var arr = [1, “sdfsd”, true, undefined, null];
// 但是,通常情况下我们只推荐在一个数组中存放同一种数据类型的值。

    // 有些情况下,数据的类型又不能一致。比如如果想要记录一个人的信息数据
    // var name = "张小花";
    // var age = 33;
    // var sex = "男";
    // var height = 180;
    // var isMarried = false;
    // var money = 120;
    // var city = "北京";
    // 以上可以用来描述一个人 但是变量略多 而且当要描述许多人时...


    // 于是 JS就定义了一个对象数据结构 允许使用 key: value作为一组键值对
    // 对象可以有多个key:value对组成
    var MrZhang = {
        name: "张小花", 
        age: 33,
        sex: "男",
        height: 180,
        isMarried: false,
        money: 120,
        city: "北京"
    }
    // 这就叫做对象 
    // 这种编程方式,叫做面向对象
    console.log(MrZhang);

对象的定义

// 定义对象
// 1 字面量 一组花括号
// var obj = {};

    // 2 构造函数式
    // var obj = new Object();

    // Object、Array都是内置构造函数
    // 与之类似的还有 Function、Date、Error、RegExp、String、Number等

    // 对象我们现在阶段主要是操作它的属性
    // var obj = {
    //     name: "张小花",
    //     age: 12,
    //     sdf : 333
    // }
    // 对象的定义规范:
    //  1 每一组key:value对之间使用逗号分割
    //  2 属性名推荐符合变量的命名规范 
    //  3 如果不符合变量命名规范 必须要加双引号 或者 单引号 
    //  4 属性值可以是JS中的任何内容 可以是变量 最终会使用变量所保存的值

    // var username = "张大花";
    // var obj = {
    //     name: username
    // }
    // console.log(obj);

对象的属性

// 对象的属性操作
var obj = {
name: “张大花”
}
var sdfff = “hello”;
// 添加属性有两种方式: 1 点语法 2 方括号语法
// 1 点语法
obj.age = 13;
// 2 方括号语法
obj[sdfff] = “你好”; // 此时会去查找length变量 如果找得到就给添加length变量的值那个属性
/*
点语法其实是方括号语法的简写形式 具备更清晰的语义 点就是“的”的意思 如果使用点语法
那么点什么就是什么 它不会去找变量
必须符合变量命名规范
*/

    // 读取属性 也是这两种方式
    console.log(obj.age);
    console.log(obj["hello"]);   
    console.log(obj["name"]);
    // console.log(obj[sdfff]); // 方括号语法里面可以使用变量 所以此时找的就是obj.hello属性
    // console.log(obj.sdfff);  // 从对象身上读取一个不存在的属性不会报错 只会返回undefined

对象的方法

delete关键字

循环对象

方括号语法与点语法的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值