对象的增删改查,数组api,字符串api,Date对象api,Math对象api

ops/2024/10/20 7:23:52/

一、对象

1.什么是对象?
  • 在js,对象是一组拥有无序的 属性和 方法的集合

  • 生活中,万事万物皆对象,对象中可以抽象处两个概念:特征(属性)和行为(方法)

    • 人:特征有姓名性别年龄身高体重... 行为:吃,敲代码,走路...

2.为什么要有对象?
  • 前面一个变量只能保存一个值,有了对象之后,一个对象就可以保存多条数据

  • 一个人信息可以 使用对象来表示。一个商品的信息也可以保存在对象中。

3.如何定义对象?
  var obj  = {属性名:属性值,属性名:属性值,属性名:属性值,属性名:属性值,方法名:function(){},方法名:function(){},方法名:function(){},方法名:function(){},}​
4.访问对象中属性和方法的语法?
  访问对象的属性:对象名.属性名    或者  对象名["属性名"]访问对象的方法:对象名.方法名()    或者  对象名["方法名"]()
5.对象中的键值对?
  • 一般把对象中属性叫 键,键对应的值叫 值

  • 对象就是一组无序的键值对的集合

  • 对象的键值对直接可以使用 , 隔开

6.对象的键的命名规则?
  • 符合变量的命名规则,都是可以作为键的

  • 数字可以作为键, 访问的时候需要使用 []语法来访问

  • 特殊符号也可以键,但是需要使用''或""进行包裹, 访问的时候需要使用 []语法来访问

7.对象的 增删改查 操作
  • .语法:

    • 增: obj.name = 'zs' 对象中不存在这个键,就属于增

    • 改: obj.name = 'ls' 对象中存在这个键,就属于改

    • 删: delete obj.name 删除对象中name属性和它的值

    • 查: console.log(obj.name)

  • []语法:

    • 增: obj["name"] = 'zs' 对象中不存在这个键,就属于增

    • 改: obj["name"] = 'ls' 对象中存在这个键,就属于改

    • 删: delete obj["name"] 删除对象中name属性和它的值

    • 查: console.log(obj["name"])

8.对象的特性?
  • 访问对象中不存在的键,结果就是 undefined

  • 对象的键具有唯一性

9.对象的遍历?
  • 遍历:一个一个进行查找 for..in循环

javascript">     // 循环的次数是由键的个数来决定的for (var key in obj) {// key指代的是所有的键// console.log(key);// obj指的是对象本身// console.log(obj);// obj[key]表示对象的值console.log(obj[key]);}

 

二、数组

1.什么是数组?
  • 数组是一组有序的数据的集合。

  • 数组属于js内置的对象,身上也有属性和方法

  • 通过typeof检测数组的类型:'object'

2.定义数组方式?
​1. 字面量定义法var arr = [];  // 一个空数组var arr = [12,34,67,78];//数组中有4个元素,分别是12,34,67,78var arr = ['zs','ls','ww']
​2. 构造函数定义法(构造函数后面的知识点)var arr = new Array();  // 类似于    var arr = [];   定义了一个空数组
​var arr = new Array(5); // 数组中有5个元素,但是元素的值都是undefinedvar arr = new Array(5,23,45,56); // 数组有4个元素,分别是5,23,45,56
​
3.数组的长度和数组的下标 (arr表示数组的名)
  • 数组中元素的个数:arr.length

  • 数组中元素的下标:每一个元素都有一个下标,从0开始,依次加1 , 第一个元素的下标是0,第二个元素的下标是1... 最后一个是arr.length-1

  • 数组元素的获取:arr[下标]

  • 注:下标也叫索引

4.数组的操作?
  • arr.length

    • 是可读(获取)可写 (修改) 的属性

    • 读的语法:arr.length ============ 读取到的元素的个数

    • 写的语法: arr.length = 数字n

      • 删除: 你设置的数字n < length, 数组的长度变成n,删除了多余的元素

      • 无操作:你设置的数字n = length, 数组的长度变成n,相当于没有操作

      • 增:你设置的数字n > length,数组的 长度变成n,增加了 n-length个空元素(undefined)

  • 索引

    • 是可读(获取)可写 (修改) 的属性

    • 读的语法: arr[下标/索引]:

      • 当索引在数组中存在,结果是索引对应的元素,

      • 当索引在数组中不存在,结果是undefined

    • 写的语法: arr[下标/索引] = 值

      • 修改: 索引< arr.length,就是修改

      • 增加一个: 索引=arr.length,尾部增加一个

      • 增加多个: 索引 > arr.length,尾部增加索引 - length个,最后一个有值,多余的使用 undefined补充

  • 遍历

  var arr = [12, 345, 57, 8];
​循环遍历:遍历下标即可,然后再通过下标获取你的元素
​for(var i = 0;i<=arr.length-1;i++){ // [0-3]console.log(i) ; // 打印的是下标console.log(arr[i]) ; // 打印的是下标对应的元素}
​或者
​for(var i = 0;i<arr.length;i++){ [0,4)console.log(i) ; // 打印的是下标console.log(arr[i]) ; // 打印的是下标对应的元素}
​
5.数组相关练习
  • 练习1:求数组中所有元素的和 var arr = [12,34,45,56]

  • 练习2:求数组中所有元素的和 var arr = [12,"李白","李白",34,"王维",45,"白居易",56]

  • 练习3:创建一个数组,给数组元素动态赋值,从1赋值到100

  • 练习4:创建一个数组,给数组元素动态赋偶数值,从2赋值到100

  • 练习5:求数组中所有元素和的平均数 var arr = [12,"李白","李白",34,"王维",45,"白居易",56]

  • 练习6:求数组中元素的最大值和最小值

三、数组API 

对象有属性和方法,数组是js的内置对象,它有 arr.length属性 也有方法(方法也称为数组的api)

分三大类 一、 能够改变原数组的方法(7个)二、 不能够改变原数组的方法 三、 es5新增的数组方法 (不能够改变原数组的方法)

1.能够改变原数组的方法(7个push,pop,unshift,shift,splice,sort, reverse)
  • push:

    • 语法: arr.push(元素1,元素2...)

    • 作用: 向数组的尾部添加一个或者多个元素

    • 参数: 数组元素

    • 返回值:添加后数组的长度

  • pop:

    • 语法: arr.pop()

    • 作用: 向数组的尾部删除一个

    • 参数: 无

    • 返回值:删除的那个元素

  • unshift:

    • 语法: arr.unshift:(元素1,元素2...)

    • 作用: 向数组的头部添加一个或者多个元素

    • 参数: 数组元素

    • 返回值:添加后数组的长度

  • shift:

    • 语法: arr.shift()

    • 作用: 向数组的头部删除一个

    • 参数: 无

    • 返回值:删除的那个元素

  • splice:

    • 语法1: arr.splice(索引)

    • 作用1: 从索引位置开始删除索引以及索引以后对应的元素

    • 参数1: 索引


    • 语法2: arr.splice(索引,n)

    • 作用2: 从索引开始删除n个元素

    • 参数2: 索引和个数


    • 语法3:arr.splice(索引,n,元素1,元素2)

    • 作用3: 从索引开始删除n个元素,在删除的位置增加元素1,元素2

    • 参数3: 索引,n,元素列表


    • 返回值:以数组形式返回删除的所有元素

  • sort:

    • 语法1:arr.sort() 不常用

    • 作用1:按照字符对应的 ASCII表 字符对应的位置来 一位一位进行从小到大排序

    • 参数1:无

    • 返回值:排序后的数组


    • 语法1:arr.sort(fucntion(a,b){return a-b}) 常用

    • 作用1:arr.sort(fucntion(a,b){return a-b}从小到大排序 arr.sort(fucntion(a,b){return b-a}从大到小排序

    • 参数1:无

    • 返回值:排序后的数组

  •    reverse:
    • 语法1:arr.reverse()

    • 作用1:翻转数组的元素

    • 参数1:无

    • 返回值:翻转后的数组

2.不能够改变原数组的方法(5个indexOf,lastIndexOf,concat,join,slice)
  • indexOf

    • 语法:arr.indexOf(元素)

    • 作用:根据元素查找元素首次出现下标,找不到返回-1

    • 返回值:下标或者-1

    • 参数:查找的元素

  • lastIndexOf 语法:

    • arr.indexOf(元素)

    • 作用:从后向前查找,根据元素查找元素首次出现下标,找不到返回-1

    • 返回值:下标或者-1

    • 参数:查找的元素

  • concat

    • 语法:arr.concat(arr1,arr2)

    • 作用:拼接多个数组

    • 返回值:拼接好的数组

    • 参数:数组

  • join

    • 语法:arr.join("操作符号")

    • 作用:将数组的元素以操作符号 形式拼接成字符串

    • 返回值:拼接好的字符串

    • 参数: "符号"

  • slice

    • 语法:arr.slice(开始下标,结束下标)

    • 作用:从数组中截取出一个数据,包左不包右(包含开始下标对应的元素,结束下标对应的元 素截取不出来)

    • 返回值: 截取出来的数据

    • 参数: 开始下标,结束下标

3.es5新增的数组方法 (不能够改变原数组的6个方法forEach,map,filter,reduce,some,every)
  • forEach

    • 语法:arr.forEach(function(item,index,array){})

    • 作用: 类似于for循环,遍历数组

    • 返回值: 无

    • 参数: function(item,index,array){} item数组的每一个元素,index数组元素对应的下标,array属性本身,一般不写它

  • map

    • 语法:arr.map(function(item,index,array){ return item*2})

    • 作用: 遍历数组,并返回一个映射后的数组

    • 返回值: 有,返回映射后的新数组

    • 参数: function(item,index,array){} item数组的每一个元素,index数组元素对应的下标,array属性本身,一般不写它

  • filter

    • 语法:arr.filter(function(item,index,array){ return 条件判断})

    • 作用: 过滤出一个新的数组

    • 返回值: 返回一个过滤出来的数组

    • 参数: function(item,index,array){} item数组的每一个元素,index数组元素对应的下标,array属性本身,一般不写它

  • reduce

    • 语法:arr.reduce(function(sum,item,index,array){ return },n)

    • 作用: 遍历数组,求和的

    • 返回值: 返回和

    • 参数: function(sum,item,index,array){} item数组的每一个元素,index数组元素对应的下标,array属性本身,一般不写它 sum:function(sum,item,index,array){}函数上一轮的返回值,sum的初始值n

  • some

    • 语法:arr.some(function(item,index,array){ return 条件判断})

    • 作用: 数组的元素有一个满足条件,返回的结果就是true,都不满足就是false

    • 返回值: 布尔类型

    • 参数: function(item,index,array){} item数组的每一个元素,index数组元素对应的下标,array属性本身,一般不写它

  • every

    • 语法:arr.every(function(item,index,array){ return 条件判断})

    • 作用: 数组的每一个元素都满足条件才是true,返回的结果就是true, 有一个不满足条件的 结果就是false

    • 返回值: 布尔类型

    • 参数: function(item,index,array){} item数组的每一个元素,index数组元素对应的下标,array属性本身,一般不写它

4es6新增的数组方法 (不能够改变原数组的2个方法find,findIndex)
  • find

    • 语法: arr.find(function(item,index,array){ return 条件判断})

    • 作用:查找元素的

    • 返回值:第一个满足条件的元素

    • 参数:function(item,index,array){} item数组的每一个元素,index数组元素对应的下标,array属性本身,一般不写它

  • findIndex

    • 语法: arr.findIndex(function(item,index,array){ return 条件判断})

    • 作用:查找元素的,找的是第一个满足条件的元素的下标

    • 返回值:第一个满足条件的元素的下标

    • 参数:function(item,index,array){} item数组的每一个元素,index数组元素对应的下标, array属性本身,一般不写它

5.数组坍塌

概念:删除数组中的一个元素时,删除的这个元素的后面的元素 会出现下标前置, 我们管这个现象叫数组坍塌

6.数组去重
javascript">数组去重方法一:indexOfvar arr = [12, 34, 12, 34, 45, 56]function fn(arr) {newarr = [];for (var i = 0; i < arr.length; i++) {if (newarr.indexOf(arr[i]) == -1) {newarr.push(arr[i])}}return newarr;}console.log(fn(arr));方法二:splicevar arr = [12, 34, 12, 34, 45, 56];function fn(arr) {arr.sort(function(a, b) {return a - b})for (var i = 0; i < arr.length; i++) {if (arr[i] == arr[i + 1]) {arr.splice(i, 1);i--;}}return arr}console.log(fn(arr));方法三:set集合var arr = [12, 34, 12, 34, 45, 56];var set = new Set(arr);console.log(set);方法四:键的唯一性var arr = [12, 34, 12, 34, 45, 56];function fn(arr) {var newarr = []var obj = {}for (var i = 0; i < arr.length; i++) {obj[arr[i]] = "zs";}for (var key in obj) {newarr.push(Number(key))}return newarr;}console.log(fn(arr));方法一:不改变原数组:var arr = [12, 34, 12, 34, 45, 56];function fn(arr) {var newarr = []for (var i = 0; i < arr.length; i++) {newarr.push(arr[i])}newarr.sort(function(a, b) {return a - b})for (var i = 0; i < newarr.length; i++) {if (newarr[i] == newarr[i + 1]) {newarr.splice(i, 1);i--;}}return newarr}console.log(arr);console.log(fn(arr));

四、字符串

1.字符串的类型
  • 字符串属于js的内置的对象

  • js中,存在一中类型叫包装数据类型, 在存储的时候属于基本数据类型,在使用的时候,属于对象 类型。

2.字符串的定义方式
字面量法:var str = 'absdhhds'
构造函数法var str = new String("zbsdhhda")
​
3.字符串的length属性和索引属性
  • length是一个只读属性

  • 索引 是一个只读属性

4.字符串的遍历
  for(var i = 0;i<str.length;i++){console.log(str[i])}

五、字符串的API

  • 1.和数组公用的(4个concat,indexOf,lastIndexOf,slice)
    • concat

      • 语法:str.concat(str1,str2。。。)

      • 作用:将str,str1,str2拼接到一起

      • 返回值:拼接好的字符串

      • 参数:一个或多个字符串

    • indexOf:

      • 语法:str.indexOf(元素)

      • 作用:根据元素查找元素首次出现的下标位置,找不到返回-1,找到了返-1,找到了返回这个下标

      • 返回值:下标或者-1

      • 参数: 字符串 或者一个小字符串


      • 语法:str.indexOf(元素,n)

      • 作用:从下标为n的位置开始往后找,根据元素查找元素首次出现的下标位-1,找到了返回这个下标

      • 返回值:下标或者-1

      • 参数: 字符串 或者一个小字符串

    • lastIndexOf:

      • 语法:str.lastIndexOf(元素)

      • 作用:从后向前,根据元素查找元素首次出现的下标位置,找不到返回-1,找到了返回这个下标

      • 返回值:下标或者-1

      • 参数: 字符串 或者一个小字符串

    • slice:

      • 语法:str.slice(开始下标,结束下标)

      • 作用:字符串截取

      • 返回值:截取后的小字符串

      • 参数: 开始下标,结束下标

  • 2.数组相关的(split)
    • split:

      • 语法:str.split("分割符")

      • 作用:将字符串,以分割符的形式分割成数组

      • 返回值:分割后数组

      • 参数: 一般是一个符号

      • eg: var str = 'ab-cd-ge'; str.split("-") ===== ["ab","cd","ge"]

      • eg: var str = 'abc-df'; str.split("") ===== ["a","b","c","-","d"

      • eg: var str = 'abcdef'; str.split("cd") ===== ["ab","ef"]

  • 3其他api(toUpperCase,toLowerCase,replace,slice,substring,substr)
    • 替换:replace:

      • eg: str = '张三喜欢sb,上班期间喜欢sb,下班喜欢sb' str.replace 结果 str = '张三喜欢xx,上班期间喜欢sb,下班喜欢sb'

      • 返回:替换后的字符串

      • 作用:把查询到的旧字符串,替换成新内容

      • 语法:str.replace("旧字符串、旧字符","新内容");

    • 字符串截取的三个api

      • slice(开始下标,结束下标):

      • substring(开始下标,结束下标) :截取字符串,包左不包右

      • substr(开始下标,长度n) :截取字符串,从开始位置截取n个

  • 字符串转大小写:

    • str.toUpperCase(): 全部将str中小写字母转为大写字母

    • str.toLowerCase(): 全部将str中大写字母转为小写字母

六、Date对象

  • 用于处理时间和日期的对象

  • 创建对象:

    • var date = new Date(); 创建当前本地的日期对象

    • var date = new Date("2023-4-4 00:00:00"); 创建 "2023-4-4 00:00:00"

  • date日期对象通过typeof检测的结果是 "object"

  • api:

    • date.toLocaleString(): 将日期对象转为字符串形式

    • date.getFullYear(): 获取四位数年份

    • date.getMonth(): 获取月 (0-11)

    • date.getDate(): 获取日

    • date.getHours(): 获取时

    • date.getMinutes(): 获取分

    • date.getSeconds(): 获取秒

    • date.getDay(): 获取星期 0-6( 其中0代表中国周日,1代表周一,2代表

  - date.setFullYear(): 修改四位数年份- date.setMonth(): 修改月 (0-11)- date.setDate(): 修改日 - date.setHours(): 修改时 - date.setMinutes(): 修改分 - date.setSeconds(): 修改秒
​- date.getTime(): 获取当前date日期距离1970年1月1日 午时的毫秒值

七、Math对象

      Math:用于处理数学的内置对象,这个对象的属性和方法需要通过Math类名来调用

      Math.random(): 随机数

      Math.max(n1,n2,n3...): n1,n2,n3代表数字,取n1,n2,n3最大值

      Math.min(n1,n2,n3...): n1,n2,n3代表数字,取n1,n2,n3最小值

      Math.pow(n,m):  n的m次幂,       (m个n相乘)

      Math.sqrt(9): 对9开根号

      Math.ceil(2.1): 向上取整

      Math.floor(2.1): 向下取整

      Math.round(5.5): 四舍五入(大于等于0.5,往上走)

      Math.abs(-4): 取绝对值(把负号去掉)

 


 


http://www.ppmy.cn/ops/126915.html

相关文章

英伟达CEO黄仁勋在BG2播客上做客

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

九、SQL 进阶之路:深入探索数据库查询的艺术

SQL 进阶之路&#xff1a;深入探索数据库查询的艺术 在当今这个数据驱动的时代&#xff0c;数据已经成为了各个行业和领域中至关重要的资源。在这样的大背景下&#xff0c;掌握 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;已然成为了数据…

初学结构化查询语言的操作

SQL: Structured Query Language 结构化查询语言(Structured Query Language)简称SQL&#xff0c;是一种特殊目的的编程语言&#xff0c;是一种数 据库查询和程序设计语言&#xff0c;用于存取数据以及查询、更新和管理关系数据库系统。 一&#xff0c;SQL的分类 1&#xff…

CCS字体、字号更改+CCS下载官方链接

Step1、 按照图示箭头操作 step2 Step3 点击确定&#xff0c;点击Apply(应用)&#xff0c;点击Apply and close(应用和关闭) 4、历代版本下载链接 CCS下载&#xff1a;官方链接https://www.ti.com/tool/CCSTUDIO The last but not least 如果成功的解决了你的问题&#x…

大模型涌现判定

什么是大模型&#xff1f; 大模型&#xff1a;是“规模足够大&#xff0c;训练足够充分&#xff0c;出现了涌现”的深度学习系统&#xff1b; 大模型技术的革命性&#xff1a;延申了人的器官的功能&#xff0c;带来了生产效率量级提升&#xff0c;展现了AGI的可行路径&#x…

SpringCloud学习:Openfeign组件实现服务调用和负载均衡

OpenFeign&#xff1a;服务调用与负载均衡&#xff08;服务端接口&#xff09; 是什么&#xff1a;通过OpenFeign可以实现服务调用和负载均衡 OpenFeign是一个声明性web服务客户端&#xff0c; 怎么用&#xff1a;服务提供者提取公共接口用FrignClient标注&#xff0c;服务调…

同一个交换机不同vlan的设备为什么不能通信

在同一个交换机上&#xff0c;不同 VLAN 的设备不能直接通信&#xff0c;这是因为 VLAN&#xff08;虚拟局域网&#xff09;通过在数据链路层&#xff08;OSI 第2层&#xff09;对设备进行逻辑隔离&#xff0c;将不同 VLAN 的设备视为属于不同的网络。具体原因如下&#xff1a;…

Flink 窗口触发器Triggers

Triggers ❝ 定义&#xff1a;触发器决定了窗口何时被触发。在Flink中&#xff0c;窗口的触发是通过设置定时器来实现的。 作用&#xff1a;控制窗口数据的聚合时机&#xff0c;确保数据在适当的时间点被处理和输出。 Trigger关键方法 onElement: 当元素被添加到窗口时调用&a…