当前位置: 首页 > 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++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...