当前位置: 首页 > 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;…...

第31课 Scratch入门篇:小画家(舞台上画画)

小画家(舞台上画画) 故事背景: 在舞台上选择画笔和颜色,进行画画 程序原理: 这节课我们继续练习画笔功能,通过画笔功能我们设计一个小画板,碰到哪种颜色画笔就切换成哪种颜色。 开始编程 1、绘制一大一小的黑色圆形,小的命名为画笔,大的圆形命名为black(黑色) 2、鼠…...

QT UI界面之ListView

文章目录 概述源码怎么用代码qt design 小结 概述 本来把布局文件那块写了一遍&#xff0c;但是看看都跟之前那篇差不多&#xff0c;就换了一个稍微有点难度的&#xff0c;也很常用的listview来写了。来看看&#xff0c;有什么好玩的。 源码 先看下源码&#xff0c;如下&…...

freeRTOS互斥量(mutex)

目录 前言 一、互斥量概述 二、互斥量函数 1.创建 2.其他函数 三、优先级反转示例 1.概念 2.代码示例 四、优先级继承 1.概念 2.代码示例 五、递归锁 1.死锁的概念 2.自我死锁 3.函数 4.递归锁代码示例 前言 在之前的信号量中&#xff0c;我们想要实现互斥的…...

基于GeoTools使用JavaFx进行矢量数据可视化实战

目录 前言 一、JavaFx展示原理说明 二、GeoTools的Maven依赖问题 三、引入Geotools相关的资源包 四、创建JavaFx的Canvas实例 五、JavaFx的Scene和Node的绑定 六、总结 前言 众所周知&#xff0c;JavaFx是Java继Swing之后的又一款用于桌面应用的开发利器。当然&#xff0…...

zabbix的setup无法进入第二步

注意-部署时&#xff0c;报错要看的日志不止一个&#xff0c;php日志的报错也要看的&#xff0c;nginx接收到请求后是转发到php-fpm的 [rootweb01-84-41 ~]# chmod -R 777 /var/lib/php/session chmod: 无法访问"/var/lib/php/session": 没有那个文件或目录 [rootweb…...

代码随想录算法训练营第四十六天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇

一、115. 不同的子序列 题目链接&#xff1a;115. 不同的子序列 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;代码随想录 (programmercarl.com)——115. 不同的子序列 视频讲解&#xff1a;动态规划之子序列&#xff0c;为了编辑距离做铺垫 | LeetCode&#x…...

宝塔安装nginx失败报错“检测到系统组件wget不存在,无法继续安装”

宝塔安装nginx失败报错“检测到系统组件wget不存在&#xff0c;无法继续安装” 问题描述解决方案 问题描述 在宝塔中安装lnmp环境时&#xff0c;安装nginx失败报错&#xff1a;检测到系统组件wget不存在&#xff0c;无法继续安装 如下图所示 通过检查发现系统是已经安装了wge…...

C++之运算符重载系列深入学习:从入门到精通!

为什么需要对运算符进行重载 C预定义中的运算符的操作对象只局限于基本的内置数据类型&#xff0c;但是对于我们自定义的类型是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算&#xff0c;这个时候就需要我们对这么运算符进行重新定义&#xff0c;赋予其…...

国赛分析。。。。

山东 6散落2两元素 浙江 8散落两元素 安徽不公布 4散落2元素 120s 华南 8散落两元素 西部 8散落两元素 华北 8 2.。。。 华东 东北 路边6张两元素...

无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案

无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案 1.Dify 简介 1.1 功能情况 Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(Backend as a Service,BaaS)与LLMOps的精髓,为开发者铺…...