当前位置: 首页 > news >正文

前端JS总结(中)

目录

前言

正文

对象:

分类:

自定义对象:

内置对象:

重点:

常用内置对象:

字符串对象:String

获取字符串长度:

大小写转换:

获取某个字符:

截取字符串:

替换字符串:

例子:

检索字符串的位置:

数组对象:Array

前提:

重要:

补充:

创建:

获取某一项值:

赋值:

数组长度:

截取数组某一部分:

添加元素:

数组头添加:

数组尾添加:

删除元素:

数组头删除:

数组尾删除:

总结:

数组排序:

up:

down:

数组反向:

日期对象:Date

获取:

两大类方法:

get方法:

set方法:

总结:

Math对象:Math

引入:

使用:

属性:

总结:

方法:

最值:

正余弦:

取整:

随机数:

写在最后:


前言

上篇看这里:前端JS总结(上)

上期从语法去学习了JS,这期讲点硬核的,关于JS中的内置对象。

因为篇幅过长,其他内容则放到下篇,我是没想到的,一个内置对象能整这么久。

精读一本书,胜过看N个视频。

这次看的书是:

吴振杰的《Web前端开发精品课 HTML CSS JavaScript基础教程》

17年出版的。

不出意外的话,这估计就是压轴文章了~respect!

那么,咱们开始吧!

正文

对象:

分类:

自定义对象、内置对象

自定义对象:

自己定义的对象,比如说,对象、数组等

内置对象:

不需要自己定义的对象,可以直接使用的对象,跟内置函数是一致的。

重点:

属性和方法的区别:方法是有返回值的,但是属性是没有的。

常用内置对象:

字符串对象:String

数组对象:Array

日期对象:Date

数学对象:Math

为了行文流畅,下面一个一个说。

字符串对象:String

获取字符串长度:

方法:使用length属性

使用:str.length

注意:空格本身也是一个字符

例子:获取一串数字的长度

实现:数字+空字符即可转化为字符串,再使用length属性即可返回长度值

以下都是方法,注意返回值。

大小写转换:

方法:toUpperCase()、toLowerCase()方法,记得这个方法是符合驼峰命名的

注意:属性和方法是不一样的,方法有返回值,属性没有;属性调用不需要带括号,但是方法是函数,需要带括号;这两个方法都是直接把全部英文字符转换为对应格式的。

返回值:处理完之后的字符串

获取某个字符:

方法:charAt(index)

解析:index是整数,是下标,下标从0开始,str.length = index + 1

注意:空格也是字符;字符之间的比较是比较ASCII值的大小

返回值:返回第index个字符

截取字符串:

方法:subString(start, end)

解析:start是开始的下标,end是结束下标

截取范围:[start, end),也就是不包括end

注意:下标从0开始

返回值:截取下来的字符串/字符

替换字符串:

方法:replace(原字符串, 替换字符串) / replace(正则表达式, 替换字符串)

注意:不管是哪种方式,第二个参数都是替换字符串;可以进行部分/整体替换,一般都是替换一个;正则表达式不是字符串,所以不需要带双引号,正则表达式中的/g表示全局替换的意思,也就是全局替换全部的原字符串

返回值:替换完成后的新字符串

例子:
let str = "这是一个字符串,但是这不是一个对象"
;et str_1 = str.replace("一个", "") // 只替换第一个
let str_2 = str.replace(/一个/g, "") // 全局替换
console.log(str_1, str_2) // 控制台输出

分割字符串:

方法:split('分隔符')

注意:分隔符可以是个字符、多个字符、正则表达式;空格也是一个字符,也可以被分割保留下来

返回值:一个数组,数组里面就是分割完之后的字符串碎片

重要:str.split("")和str.split(" ")的区别:前者没有空格,直接按字符分割;后者有空格,以空格为分割线,分割成一个一个块。

类似:数组对象中的join(),两者经常配合一起使用

检索字符串的位置:

方法:indexOf(str),驼峰命名法

解析:str是需要检索的字符串/字符

注意:如果没有找到,返回-1;下标从0开始;str是字符串,需要双引号

对应方法:lastIndexOf(str),指定字符串最后出现的下标位置

返回值:下标/-1

数组对象:Array

前提:

一个变量只能存储一个值

那么我们怎么一个变量存储一类值呢?

即答:数组

重要:

数组是一个引用数据类型——对象的一种,不是基本数据类型

数组的下标从0开始,这是今晚打字最多的一句话了。

补充:

如果arr[index]不存在,返回的是undefined

创建:

let arr = new Array(元素1, 元素2, 元素3, ....) // 完整形式

let arr = [元素1, 元素2, 元素3, ...] // 简写形式,语法糖

获取某一项值:

arr.[index]即可,index从0开始算起

赋值:

含义:给某一项元素赋新值,或者多增加一项元素

方法:arr[index] = new value

数组长度:

length属性即可获取数组的长度

arr.length

截取数组某一部分:

对比:截取字符串对象中的某部分——subString(),返回的是截取的部分

方法:slice(start, end),slice中文——切片

截取范围:[start, end),也就是说,不包括end部分,注意这个,下面会继续提到

返回值:截取的数组

添加元素:

分为在数组头添加,在数组尾添加

数组头添加:

方法:unshift(新元素1, 新元素2, ...)

注意:这个方法会改变原数组,返回的是新数组

返回值:新数组

数组尾添加:

方法:push(新元素1, 新元素2, ...)、

注意:这个方法会改变原数组,返回的是新数组

返回值:新数组

删除元素:

这个跟添加元素是一样的,都是分为从数组头删除,从数组尾删除

数组头删除:

方法:shift()

注意:这个方法会改变原数组,返回的是新数组,但是只会删除一个

返回值:新数组

数组尾删除:

方法:pop()

注意:这个方法会改变原数组,返回的是新数组,但是只会删除一个

返回值:新数组

总结:

unshift()、push()、shift()、pop()都会改变原数组

数组排序:

方法:sort(函数名/空)

注意:函数名:定义顺序/逆序排布的函数名;函数名为空的时候只会比较数字中第一个数字,而不是整体大小

例子:升序——arr.sort(up),arr.sort(down)

返回值:新数组 - 覆盖原数组

up:
function up(a, b) {return a - b
}

down:
function down(a, b) {return b - a
}

数组反向:

方法:reverse()

作用:将数组反向

返回值:新数组 - 覆盖原数组

数组元素连接成字符串:

方法:join('连接符')

注意:连接符 - 可选参数;如果不写,默认是英文逗号

区别:join("")和join(" ")的区别:跟字符串对象的split()方法差不多

返回值:字符串

日期对象:Date

获取:

let date = new Date()

两大类方法:

get和set方法

get方法:

getFullYear():获取年份,返回四个整数

getMonth():获取月份,返回的是0-11的整数,所以月份需要+1显示

getDate():获取日数,返回的是1-31的整数

下面都是带s的:

getHours():获取小时数,取值为0-23的整数

getMinutes():获取分钟数,取值为0-59的整数

getSeconds():获取秒钟数,取值为0-59的整数

set方法:

setFullYear():设置年月日

setMonth():设置月日

setDate():设置日

下面都是带s的:

setHours():设置时分秒毫秒

setMinutes():设置分秒毫秒

setSeconds():设置秒毫秒

总结:

月份从0开始,所以正常的月份应该+1

get方法只能获取到对应的内容

set方法不能能设置对应的内容,还可以设置比其小的内容;但是对应的内容是必选,其他内容是可选,一般来说,我们都默认是不可选的

getDay():获取星期,0表示星期天,其他则正常;返回值是0-6的数字;如果要转化为成周几,需要自己手动去创建一个数组,根据返回值来取对应值

Math对象:Math

这是最后一个对象,写完这里,下期说说DOM操作了。

引入:

设计、动画开发、高级编程、算法研究等,跟数学有很大的关系

使用:

不需要new来创建一个Math对象,直接使用Math.属性/方法即可

Math.属性 / Math.方法

属性:

PI:圆周率;角度:Math.PI / 180 * 角度值

总结:

Math属性都是常量,所以都是大写

只需要掌握Math.PI即可,别的我都没写

角度值非常重要,canvas需要使用

上面这些就是属性了,下面介绍方法

方法:
最值:

最大值:Math.max(一堆数字),返回最值

最小值:Math.min(一堆数字),返回最值

注意:如果想要获取数组的最值,我们需要使用语法糖...arr——展开运算符的方式进行

正余弦:

sin(x)、cos(x)、atan2(x)

总结:常用于做动画,不说

取整:

floor(x):向下取整,往小了去取值

ceil(x):向上取整,往大了去取值

总结:不会四舍五入,都是往最值去取值

随机数:

random(x):生成0-1之间的随机数,范围[0, 1),不包含1

常用:

Math.random()*m:表示生成[0, m)之间的随机数

Math.random()*m+n:表示生成[n, m + n)之间的随机数

Math.random()*m-n:表示生成[-n, m - n)之间的随机数

Math.random()*m-m:表示生成[-m, 0)之间的随机数

注意:

这里生成的都是范围内的随机数,可以是整数,也可以是小数

如果要整数,需要使用Math.floor() / Math.ceil()方法,但是一般都是采用floor,而不是ceil

其他方法:

返回值:abs(x):返回绝对值,正数是本身,负数是绝对值

平方根:sqrt(x):返回X的平方根

写在最后:

这次只说了内置对象,本来还想写一下DOM操作的,但是发现篇幅太长了。

不过,刚好这个内置对象就是一个重点中的重点,独立出来成为一篇,其实也是不错的。

那么,就这样吧。

下期DOM操作再见!

相关文章:

前端JS总结(中)

目录 前言 正文 对象: 分类: 自定义对象: 内置对象: 重点: 常用内置对象: 字符串对象:String 获取字符串长度: 大小写转换: 获取某个字符: 截取字…...

elasticsearch的match_phrase匹配及其可能导致的查询问题

目录 1.match_phrase使用介绍 2.规避可能产生的查询问题 解决方式 一.查询和索引分词器一致,即都使用max_word或者都使用smart 二.使用slop增加匹配的容忍度 3.参考文档 1.match_phrase使用介绍 elasticsearch的match_phrase查询是全文查询,主要用…...

C++快速理解之继承

一、继承和派生 1.是什么? C 中的继承是类与类之间的关系,与现实世界中的继承类似 例如:儿子继承父亲的财产 继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程 例如: 类B继承…...

Node.JS - 基础(Express)

目录 A. 简介 B. 下载,安装 C. 启动服务,查看文件结构 A. 简介 Express 是一个基于 Node.js 平台的极简、灵活的 Web 应用开发框架,它提供了一系列强大的功能来构建 Web 应用程序和 API。 一、Express 的基本特点 简洁的路由系统: Express 的路由系…...

I/O复用

I/O复用使得程序能够同时监听多个文件描述符,这对提高程序的性能至关重要。 举个例子: 就好比你天天玩手机,你妈为了监控你,在你房间安装了一个监控,这个监控可以实时监控你的一举一动,并上传到你妈手机上…...

【验证可用】解决安装SQL Server数据库时,报错“启用 windows 功能 NetFx3 时出错,错误代码:-2146498298......“的问题

目录 背景一. 报错信息1.1 报错的图片信息1.2 报错的文字信息 二. 解决报错2.1 下载 NetFx3.cab 文件2.2 执行命令 三. SQL Server 修复安装 背景 一次在阿里云服务器安装 SQL Server 2012时,系统报错了,导致安装进行不下去…通过在网上查找了多种解决方…...

STM32的SDIO接口详解

目录 1. 定义与兼容性 2. SDIO时钟 3. SDIO命令与响应 4. SDIO块数据传输 5. SDIO控制器的硬件结构 6.代码实现 1.SD初始化 2.测试SD卡的读取 3.测试SD卡的写入 STM32的SDIO(Secure Digital Input/Output,安全数字输入输出)接口是一…...

docker容器常用指令,dockerfile

docker:容器,主要是解决环境迁移的问题,将环境放入docker中,打包成镜像。 docker的基本组成:镜像(image),容器(container),仓库(repository)。镜像相当于类,容器相当于类的实例对象…...

C语言学习笔记 Day11(指针--下)

Day11 内容梳理: 目录 Chapter 7 指针 7.6 指针 & 函数 (1)形参改变实参的值 (2)字符数组作为函数参数 1)合并字符串 2)删掉字符串中空格 (3)指针作为函数返…...

(24)(24.2) Minim OSD快速安装指南(二)

文章目录 前言 6 MinimOSD-extra NG 7 替代硬件 前言 本文简要介绍了如何连接电路板。有关更多详细说明,请参阅 MinimOSD 项目维基(MinimOSD Project wiki)。 6 MinimOSD-extra NG 该项目位于此处(here);文档位于此处(here);支撑线位于此…...

GD32 MCU碰到IIC总线卡死怎么办?

大家在使用MCU IIC通信时,若碰到设备复位或者总线干扰等情况,可能会导致IIC总线卡死,表现上总线上SDA或者SCL其中一根线为低电平,IIC总线一直处于busy状态。此时若代码上一直等待总线空闲,则可能导致软件死机&#xff…...

算法——动态规划:0/1 背包问题

文章目录 一、问题描述二、解决方案1. DP 状态的设计2. 状态转移方程3. 算法复杂度4. 举例5. 实现6. 滚动数组6.1 两行实现6.2 单行实现6.3 优缺点 三、总结 一、问题描述 问题的抽象:给定 n n n 种物品和一个背包,第 i i i 个物品的体积为 c i c_i …...

又是奇瑞,“统一下班时间”过去不久,最近又整新活了...

奇瑞 345 345 可不是奇瑞的汽车型号,而是奇瑞 7 月份会议文章中提出的新策略。 简单来说,要提高加班效率,实现 3 个人干 5 个人活,拿 4 个人的工资,要把员工当成家人一样看待,要对他们的健康幸福负责。 前面…...

ubuntu24.04lts cmake编译 opencv4.5.4 contrib的一些问题

编译之前一定要安装好必须的库,否则即使提示编译成功,调用opencv后也可能会有问题 sudo apt-get update sudo apt-get upgradesudo apt-get install -y g sudo apt-get install -y cmake sudo apt-get install -y make sudo apt-get install…...

大数据面试SQL(三):每分钟在线直播人数

文章目录 每分钟在线直播人数 一、题目 二、分析 三、SQL实战 四、样例数据参考 每分钟在线直播人数 一、题目 有如下数据记录直播平台主播上播及下播时间,根据该数据计算出平台每分钟的在线直播人数。 这里用主播名称做统计,前提是主播名称唯一…...

python中执行mysql操作并将python脚本共享

mysql下载路径&#xff1a; ​​​​​​MySQL :: MySQL Community Downloads [root2 ~]# vim py001.py a3 b4 print(ab) print(a**2b**2) [root2 ~]# python py001.py 7 25 [root2 ~]# python3 >>> import random >>> random <module rando…...

HTTP、HTTPS、SOCKS5三种协议特点

在互联网通信中&#xff0c;HTTP、HTTPS和SOCKS5是三种至关重要的协议&#xff0c;它们各自具有独特的特点和应用场景。本文将详细探讨这三种协议的特点&#xff0c;帮助读者更好地理解它们在网络通信中的作用。 一、HTTP协议特点 HTTP&#xff08;Hypertext Transfer Protoc…...

在ubuntu、centos、openEuler安装Docker

目录 ubuntu、centos、openEuler安装Docker 1.在 Ubuntu 上安装 Docker 1. 1 更新软件包 1. 2 安装必要的依赖 1.3 添加 Docker 的 GPG 密钥 1.4 添加 Docker 仓库 1.5 更新软件包 1.6 安装 Docker 1.7 启动并启用 Docker 服务 1.8 验证安装 1.9 运行测试容器 1.10…...

公共命名空间的例子3

有这样一个句子 用x语言解释[12*3]。 在x语言中&#xff0c;不符合“先乘除后加减”&#xff0c;这个句子应该怎样解释呢&#xff1f; 第一步&#xff0c;进行词法分析&#xff0c;目的是识别出注释和字符串&#xff0c;其中可能包括任意符号&#xff0c;干扰编译过程。 第二步…...

【云存储】SDS软件定义存储,数据存储的类型与技术方案(块/文件/对象,Ceph、RBD等)

【云存储】SDS软件定义存储&#xff0c;数据存储的类型与技术方案&#xff08;块/文件/对象&#xff0c;Ceph、RBD等&#xff09; 文章目录 1、分布式存储架构&#xff08;软件定义存储SDS&#xff0c;超融合基础架构HCI&#xff09;2、存储类型&#xff08;块存储&#xff0c;…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

构建Docker镜像的Dockerfile文件详解

文章目录 前言Dockerfile 案例docker build1. 基本构建2. 指定 Dockerfile 路径3. 设置构建时变量4. 不使用缓存5. 删除中间容器6. 拉取最新基础镜像7. 静默输出完整示例 docker runDockerFile 入门syntax指定构造器FROM基础镜像RUN命令注释COPY复制ENV设置环境变量EXPOSE暴露端…...

Shell 解释器​​ bash 和 dash 区别

bash 和 dash 都是 Unix/Linux 系统中的 ​​Shell 解释器​​&#xff0c;但它们在功能、语法和性能上有显著区别。以下是它们的详细对比&#xff1a; ​​1. 基本区别​​ ​​特性​​​​bash (Bourne-Again SHell)​​​​dash (Debian Almquist SHell)​​​​来源​​G…...

基于微信小程序的作业管理系统源码数据库文档

作业管理系统 摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和微信小程序来完成对系统的…...

【版本控制】Git 和 GitHub 入门教程

目录 0 引言1 Git与GitHub的诞生1.1 Git&#xff1a;Linus的“两周奇迹”&#xff0c;拯救Linux内核1.2 GitHub&#xff1a;为Git插上协作的翅膀1.3 协同进化&#xff1a;从工具到生态的质变1.4 关键历程时间轴&#xff08;2005–2008&#xff09; 2 Git与GitHub入门指南2.1 Gi…...

二叉树-226.翻转链表-力扣(LeetCode)

一、题目解析 翻转可以理解为树的左右子树交换&#xff0c;从根到叶子节点&#xff0c;但是这里交换的是链接的指针&#xff0c;而不是单纯的交换值&#xff0c;当出现nullptr时&#xff0c;也是可以交换链接的&#xff0c;交换值的话就不行了。 二、算法原理 依旧的递归&…...

系统模块与功能设计框架

系统模块与功能设计框架&#xff0c;严格遵循专业架构设计原则&#xff0c;基于行业标准&#xff08;如微服务架构、DDD领域驱动设计&#xff09;构建。设计采用分层解耦模式&#xff0c;确保可扩展性和可维护性&#xff0c;适用于电商、企业服务、数字平台等中大型系统。 系统…...

怎么把自己电脑设置成服务器?

将自己的电脑设置为服务器可以让您托管网站、文件共享或运行各种服务。以下是设置步骤&#xff1a; 基本设置步骤 ‌选择操作系统‌&#xff1a; Windows&#xff1a;可使用IIS&#xff08;Internet Information Services&#xff09;Linux&#xff1a;常用Apache、Nginx等mac…...