JS 之 数组、对象 、函数

一、数组

数组是JS中的引用类型之一

  1. 引用类型和值类型的区别:存放的位置
       引用类型存放在内存里,堆内存 (引用类型比较的时候比的是地址)
       值类型存放在内存里,栈内存

  2. 数组的定义
    (1)字面量、直接量 : var arr = [ ] ;
    (2) 构造函数: var arr1 = new Array() ;       var arr2 = Array();

  3. 数组的使用

    1. 设置数据 :
      var arr = [ ‘hh’ ,‘kk’ , ‘ll’] ;
      arr[3]=‘ooo’;

    2. 循环数组
      for (var i = 0 ; i < arr.length ; i++){
      console.log(arr[i]);
      }

    3. 数组的长度
      数组天生有一个属性: length它表示数组的长度它是可读可写
      var arr = [1,2,3,4,5,6,7];
      console.log(arr.length);
      *数组的长度改变会影响数组

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

  4. 数组的属性
    push() 向数组的尾部添加一项
    // 返回值是数组的长度
    在这里插入图片描述
    pop() 从数组的末尾移除一项。 // 只能删一个
    // 返回值是移除的一项
    在这里插入图片描述
    shift() 从数组的开头移除一项
    // 只能删一个
    // 返回值是 移除的项
    在这里插入图片描述
    unshift() 从数组的开头添加一项
    // 返回值是 数组的长度
    在这里插入图片描述
    // 注:通常情况下,我们只在数组中存放同一类型的成员

    cancat() 向数组中拼接新内容
    // 返回值是新数组。 不会改变原数组。
    在这里插入图片描述
    reverse() 颠倒顺序
    // 返回值是原数组 。 会改变数组
    在这里插入图片描述
    sort() 排序方法, 通常用于数字,参数是函数, 函数中有a b
    // 如果返回 a - b 升序排序
    // 如果返回 b - a 降序排序
    // 如果不传递参数, 则按照首位数字进行排序
    在这里插入图片描述
    slice() 用于截取数组中的一段 .左闭右开
    // 第一个参数是开始截取的位置
    // 第二个参数是结束截取的位置(不包含改位置的成员)
    // 如果参数是负数,则从后面往前截取 (从 - 1 开始)
    // 如果不传递第二个参数,则从第一个参数截取到最后
    // 如果没有参数,截取全部
    在这里插入图片描述
    splice 用于数组的增、 删、 改
    // 第一个参数表示开始操作的位置( 删除的 位置 )
    // 第二个参数表示删除的个数
    // 之后的每一个参数都表示数组的新成员(如果是数组 不拆) ,从删除的位置插入
    // 如果没有第二个参数,则默认从第一个参数截取到末尾.如果只接受一个参数,表示从该位置开始删除后面所有成员
    // 返回值是被删除的元素组成的新数组
    在这里插入图片描述
    join 用于将数组转换位字符串
    // 该方法用于将数组的成员以固定的字符串拼接
    // 参数是拼接符号,默认是逗号 . 返回值是拼接完成的字符串
    在这里插入图片描述
    indexOf 用于搜索数组中的成员的位置
    // 参数是成员 该方法用于数组成员的精确查找
    // 查找时用的是全等判定
    // 返回值是 下标的位置 如果找不到,就是 -1
    在这里插入图片描述
    toString() 与join 默认一样.将数组转换位字符串
    在这里插入图片描述


    注 : 为什么字符串居然能够调用方法,它不是基本数据类型吗?
    解 : 字符串这个数据类型,在JS中运行时 ,JS引擎中解析的时候会先把 a 这个"str"值替换为 var s = new String(“str”);
    在这里插入图片描述
    因为真正操作的时候是新生成的对象内部在操作 a所保存的"str"只是作为参数传递了进去 在里面复制了一份 操作的是这个"副本" 最终会销毁这个生成的对象 原字符串并没有发生变化

二、对象

对象是属性的无序集合
// 属性由两部分组成 :属性名 和属性值
// 属性名必须是字符串

1.定义对象
(1)字面量
在这里插入图片描述
(2)构造函数
var obj = new Object();
var obj = Object();
在这里插入图片描述

2.方括号语法与点语法

  • 方括号语法:
    • [] 之间是一个JS的执行环境,可以使用变量,表达式
    • [] 最终需要的是一个字符串,如果不是字符串,会转为字符串(调用toString方法)
    • [] 只要内容是字符串,不论是否符合变量命名规范,都可以成功
  • 点语法:
    • 点语法,点什么,就是什么
    • 点语法,必须符合变量的命名规范
      在这里插入图片描述
      在这里插入图片描述

3.删除属性
delete关键字 该关键字只能用来删除对象的属性 而不可以用来删除变量
在这里插入图片描述
4. 循环对象 也叫 遍历 ,或 迭代
        循环数组用 for 循环*
  &nbsp    循环对象用 for in 循环
在这里插入图片描述

三、变量、属性、函数、方法的区别

  1. 变量和属性 的相同点 都是用来存储数据
    // 变量 : 单独声明并赋值 ,使用的时候,直接写变量名 单独存在
    // 属性 : 在对象里面的不需要声明 ,使用的时候必须是 对象.属性

  2. 函数和方法的相同点:实现某种功能 ,做某件事
    // 函数是单独声明 并且调用 函数名() 单独存在
    // 方法 在对象里面 调用的时候 对象.方法()

四、函数

函数 作用: 复用代码。
1.定义函数的语法

 1: 函数声明
    function fun(){
        // 变量名 语义化
    }

    // 定义函数的语法 2: 函数表达式
    // var 变量 = function(){
    //     执行的代码
    // }
    var fun = function(){
        alert(1);
    }

    // 定义函数的语法 3: 构造函数
    var fun = new Function();


    //函数从使用方面来说分两部分:1.定义 2.调用
    function fun(){  
    }
    //函数想要执行内部的代码必须加圆括号
  • 函数的返回值

     function sum(a , b){
         // 可以使用return 向函数外部返回内容
         return a + b ;
     }
     var num = sum (11 + 12 );
     console.log(num);
     // 函数发返回值意义就在函数运行结束后,依然能使用函数的运算结果
    

3.构造函数创建对象
利用函数的方法,重复相同代码,把这个函数称为 构造函数

  • 这个函数封装的是对象
  • 构造函数 就是 把 对象里面的一些相同的属性和方法 抽象出来 封装到函数里

构造函数的语法格式:

function  构造函数名() {
        this.属性 = 值 ;
        this.方法 = function(){

        }
    }
    new 构造函数名();

(1) 构造函数名首字母大写
(2) 构造函数不需要return 就可以返回结果
(3) 调用构造函数 必须使用 new
(4) 只要 new Star() 调用函数就创建一个对象
(5) 属性和方法前面 必须加 this

4.函数属性
length属性:表示字符串的长度
在这里插入图片描述
charAt()
// 参数是数字 返回值是该数字所指向的下标字符
在这里插入图片描述
charCodeAt() 参数是数字 返回值是该数字所指向的下标字符的编码
在这里插入图片描述
split() 参数是分隔符 返回值是以该参数作为切割之后的数组
在这里插入图片描述
substring 该方法用于截取字符串中的一段
特点: 1.两个参数时,总是从小的截取到大的,2. 当数值为负数时,不会从后往前数
在这里插入图片描述
substr() 该方法也用于截取字符串中的一段 第一个参数依旧表示截取的开始位置 第二个参数表示要截取的字符串的长度
在这里插入图片描述
slice() 该方法用于截取字符串的一段 第一个参数表示截取的开始位置(包含) 第二个参数表示截取的结束位置(不包含)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值