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

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架&#xff0c;实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

Unity VR/MR开发-VR开发与传统3D开发的差异

视频讲解链接&#xff1a;【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...