js版本之ES5特性简述【String、Function、JSON、其他】(二)

目录

String相关方法

string.charAt()

string.charCodeAt()

string.concat()

string.match()

string.search()

string.replace()

string.split()

string.trim()

string.slice()

string.substr()

string.substring()

Function相关方法

arguments.length

function.bind()、function.call()、function.apply() 

JSON相关方法

JSON.parse()

JSON.stringify()

其他相关方法

Date.now()

date.toJSON()

Math.min()

Math.max()

Math.random() 

number.toFixed()


String相关方法

string.charAt()

string.charAt()方法从一个字符串中返回指定的字符。

语法:【 str.charAt(index) 

参数:index一个介于0 和字符串长度减1之间的整数。 (0~length-1)如果没有提供索引,charAt() 将使用0。

返回值:表示指定字符串索引处的字符; 如果index超出范围,则为空字符串

string.charCodeAt()

string.charCodeAt()访问字符串中特定字符,返回给定位置的字符的字符编码

注:【 方法返回0到65535之间的整数,表示给定索引处的UTF-16代码单元 (在 Unicode 编码单元表示一个单一的 UTF-16 编码单元的情况下,UTF-16 编码单元匹配 Unicode 编码单元。但在——例如 Unicode 编码单元 > 0x10000 的这种——不能被一个 UTF-16 编码单元单独表示的情况下,只能匹配 Unicode 代理对的第一个编码单元) 。如果你想要整个代码点的值,使用 codePointAt()。】

语法:【 str.charCodeAt(index) 

参数:index一个大于等于 0,小于字符串长度的整数。如果不是一个数值,则默认为 0。

返回值:返回值是一表示给定索引处(String中index索引处)字符的 UTF-16 代码单元值的数字;如果索引超出范围,则返回NaN。

'ABC'.charCodeAt(0); // returns 65

string.concat()

string.concat()方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。

语法:【 string.concat(string1, string2, ..., stringX) 

参数:string1, string2, ..., stringX和原字符串连接的多个字符串。

返回值:所有参数string组合成的新的string

string.match()

string.match()当一个字符串与一个正则表达式匹配时, match()方法检索匹配项。

语法:str.match(regexp) 

参数:regexp一个正则表达式正则表达式对象。如果传入一个非正则表达式对象,则会隐式地使用new RegExp(obj) 将其转换为一个RegExp。如果你未提供任何参数,直接使用 match() ,那么你会得到一个包含空字符串的Array:[""] 。

返回值:array如果字符串匹配到了表达式,会返回一个数组,数组的第一项是进行匹配完整的字符串,之后的项是用圆括号捕获的结果。如果没有匹配到,返回null

示例:A-E、a-e 的所有字母将会作为一个数组的元素返回。 

var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);console.log(matches_array);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

string.search()

string.search()查找匹配的字符串,返回匹配项的索引,没有找到,返回 -1【用于搜索正则表达式和给定字符串对象之间的匹配】

语法:str.search(regexp) 

参数:regexp一个正则表达式(regular expression)对象。如果传入一个非正则表达式对象,则会使用 new RegExp(obj) 隐式地将其转换为正则表达式对象。

返回值:如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引。否则,返回 -1。

var str = "hey JudE";
var re = /[A-Z]/g;
var re2 = /[.]/g;
console.log(str.search(re)); // returns 4, 返回第一个匹配上的“J”索引
console.log(str.search(re2)); // returns -1 没有找到 '.'

string.replace()

string.replace()方法返回一个由替换值替换一些或所有匹配的模式后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的函数。【注意:原字符串不会改变。】

语法:str.replace(regexp|substr, newSubstr|function)

参数:

  • regexp (pattern)一个RegExp对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。
  • substr (pattern)一个要被newSubStr替换的字符串字符串字符串。其被视为一整个字符串,而不是一个正则表达式。仅仅是第一个匹配会被替换。
  • newSubstr (replacement) 用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名。
  • function (replacement)一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。

返回值:一个部分或全部匹配由替代模式所取代的新的字符串。

const str = "Hello, world!";
const newStr = str.replace("l", "A");
console.log(newStr); // 输出: HeAlo, JavaScript!

在下面这个示例中,函数 (match, offset, string) 会被调用两次,每次匹配到 "world" 时都会将其转换为大写。 

  • match:当前匹配的子字符串。
  • offset:匹配到的子字符串在原字符串中的位置。
  • string:原字符串。
const str = "Hello, world! Welcome to the world of programming.";
const newStr = str.replace(/world/g, (match, offset, string) => {return match.toUpperCase();
});
console.log(newStr); // 输出: Hello, WORLD! Welcome to the WORLD of programming.

string.split()

string.split()基于指定的分隔符将一个字符串分割成多个字符串,将结果放在一个数组中,并返回

语法:【 str.split(separator,limit)

参数:separator指定表示每个拆分应发生的点的字符串。separator可以是一个字符串正则表达式

  • 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。
  • 如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。
  • 如果分隔符为空字符串,则将str原字符串中每个字符的数组形式返回。

  limit一个整数(可选),限定返回的分割片段数量。当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。如果在达到指定限制之前达到字符串的末尾,它可能仍然包含少于限制的条目。新数组中不返回剩下的文本。

返回值:在给定字符串中出现分隔符的每个点处拆分的字符串数组。

var str = '哈哈/嘿嘿/啦啦/咕咕';
var arr = str.split('/', 2);
console.log(arr) // ["哈哈,"嘿嘿"]

string.trim()

string.trim()方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR)。

语法:str.trim()

描述:trim() 方法并不影响原字符串本身,它返回的是一个新的字符串

string.slice()

string.slice()方法提取一个字符串的一部分,并返回一新的字符串。

语法:string.slice(start, end)

参数:

  • start 参数可选,表示起始索引位置,默认为 0。如果为负数,则表示从字符串末尾的索引位置开始计算
  • end 参数可选,表示结束索引位置,默认为字符串的长度。如果为负数,则表示从字符串末尾的索引位置开始计算

注:返回的子字符串包括 start 索引位置的字符,但不包括 end 索引位置的字符(包左不包右)。如果 start 大于等于 end,则返回一个空字符串。原始字符串不会被修改。

返回值:返回一个从原字符串中提取出来的新字符串

const str = 'Hello, World!';console.log(str.substring(7));      // 输出: "World!"
console.log(str.substring(7, 12));  // 输出: "World"
console.log(str.substring(-6));     // 输出: "Hello, World!"
console.log(str.substring(7, -1));  // 输出: "Hello, World"

string.substr()

string.substr()方法返回一个字符串中从指定位置开始到指定字符数的字符。

语法:【 str.substr(start,length) 

参数:start开始提取字符的位置。如果为负值,则被看作strLength + startstrLength为字符串的长度(例如,如果 start为-3,则被看作strLength + (-3))length可选。提取的字符数

返回值:包含给定字符串的提取部分的新字符串。如果length0或负数,则返回空字符串。

var str = 'abcdefghij';console.log('(1, 2): '   + str.substr(1, 2));   // '(1, 2): bc'
console.log('(-3, 2): '  + str.substr(-3, 2));  // '(-3, 2): hi'
console.log('(-3): '     + str.substr(-3));     // '(-3): hij'
console.log('(1): '      + str.substr(1));      // '(1): bcdefghij'
console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
console.log('(20, 2): '  + str.substr(20, 2));  // '(20, 2): '

string.substring()

string.substring()方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。

语法:【 str.substring(indexStart, indexEnd) 

参数:indexStart一个 0 到字符串长度之间的整数。indexEnd可选。一个 0 到字符串长度之间的整数。

返回值:包含给定字符串的提取部分的新字符串。

注:如果 indexStart 大于 indexEnd,则 substring执行效果就像两个参数调换了一样。例如,str.substring(1, 0) == str.substring(0, 1)

Function相关方法

arguments.length

arguments.length属性包含传递给该函数的参数的数量。

语法:【 arguments.length 

描述:arguments.length表示的是实际上向函数传入了多少个参数,这个数字可以比形参数量大,也可以比形参数量小(形参数量的值可以通过Function.length获取到)

function.bind()、function.call()、function.apply() 

bind、call、apply三个方法的具体介绍请看另一篇文章:call、apply、bind三者的区别

function.bind()方法创建一个新的函数, 当被调用时,将其this关键字设置为提供的值,在调用新函数时,在任何提供之前提供一个给定的参数序列。

function.call()方法调用一个函数, 其具有一个指定的this值和分别地提供的参数(参数的列表)。

注意:该方法的作用和 apply() 方法类似,只有一个区别,就是call()方法接受的是若干个参数的列表,而apply()方法接受的是一个包含多个参数的数组

function.apply()方法调用一个函数, 其具有一个指定的this值,以及作为一个数组(或类似数组的对象)提供的参数。

注意:call()方法的作用和 apply() 方法类似,只有一个区别,就是 call()方法接受的是若干个参数的列表,而apply()方法接受的是一个包含多个参数的数组

JSON相关方法

JSON.parse()

JSON.parse()方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。提供可选的reviver函数用以在返回之前对所得到的对象执行变换(操作)。【简意:解析字符串为 JSON 对象】

语法: JSON.parse(text[, reviver]) 用“[ ]”括起来的参数表示为可选参数

参数:

  • text:必需, 一个有效的 JSON 字符串。
  • reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

返回值:Object对应于给定JSON text

JSON.stringify()

JSON.stringify()方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,如果指定了replacer是一个函数,则可以替换值,或者如果指定了replacer是一个数组,可选的仅包括指定的属性。【简意:解析 JSON 对象为字符串】

语法: JSON.stringify(value[, replacer[, space]]) 用“[ ]”括起来的参数表示为可选参数

参数:

  • value 必需 对象或数组,需要转换成json字符串的数据
  • replacer 可选 函数
  • space 可选 文本添加缩进、空格和换行符,小于等于10的数字(如大于10按10展示)或者是代表缩进、空格和换行符的转义字符,例如'\t'

返回值:一个表示给定值的JSON字符串。

let arr = ['Lqw', 23, 'female'];
JSON.stringify(arr, function (key, value) {if (typeof value === 'string') {return value.toUpperCase();}return value;},4);结果:["LQW", 23, "FEMALE"]

其他相关方法

Date.now()

Date.now()方法返回从1970年1月1日00:00:00 UTC开始经过的毫秒数。【返回当前时间戳】

语法: Date.now() 

返回值:Number表示从unix纪元经过的毫秒。

date.toJSON()

date.toJSON()方法返回 Date 对象的字符串形式。

语法: dateObj.toJSON() 

返回值:给定日期的字符串表示形式。

var jsonDate = (new Date()).toJSON();
var backToDate = new Date(jsonDate);console.log(jsonDate); //2015-10-26T07:46:36.611Z

Math.min()

Math.min()返回零个或更多个数值的最小值。

语法: Math.min(num1,num2…numN) 

参数:num1, num2, ...一组数值

返回值:给定数值中最小的数。如果任一参数不能转换为数值,则返回NAN。

Math.max()

Math.max() 函数返回一组数中的最大值。

语法: Math.min(num1,num2…numN) 

参数:num1, num2, ...一组数值

返回值:返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字,则会返回NAN。

// 获取数组中最大值
var arr = [1,2,3];
var max = arr.reduce(function(a, b) {return Math.max(a, b);
});

Math.random() 

Math.random() 函数返回一个浮点,  伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。【返回大于 0 小于 1 的一个随机数】

语法: Math.random()​​​​​​​ 

返回值:一个浮点型伪随机数字在0(包括0)和1(不包括)之间

// 随机选择数组中的一个元素:
let arr = [1, 2, 3, 4, 5];
let randomElement = arr[Math.floor(Math.random() * arr.length)];
// 生成一个随机颜色值:
let randomColor = `rgb(${Math.random() * 255}, ${Math.random() * 255}, ${Math.random() * 255})`;

number.toFixed()

number.toFixed()方法使用定点表示法来格式化一个数【按照指定的小数位返回数值的字符串表示】

语法: numObj.toFixed(digits)​​​​​​​ 

参数:digits小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。

返回值:所给数值的定点数表示法的字符串形式。

var numObj = 12345.6789;numObj.toFixed();       // Returns '12346': note rounding, no fractional part
numObj.toFixed(1);      // Returns '12345.7': note rounding
numObj.toFixed(6);      // Returns '12345.678900': note added zeros

上一章:js版本之ES5特性简述【Object、Array方法】(一)

下一章:js版本之ES6特性简述【类(class)、模块化(ES Module) 、j箭头函数、函数参数默认值、模板字符串、解构赋值、扩展运算符、对象属性简写、Promise】(二)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/479147.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(计算机组成原理)期末复习

第一章 计算机的基本组成:硬件软件(程序)计算机系统 软件有系统软件(系统管理工具),应用软件 计算机硬件:包括主机和外设,主机包括CPU和内存,***CPU由运算器和控制器所组…

QML TableView 实例演示 + 可能遇到的一些问题(Qt_6_5_3)

一、可能遇到的一些问题 Q1:如何禁用拖动? 在TableView下加一句代码即可: interactive: false 补充:这个属性并不专属于TableView,而是一个通用属性。很多Controls下的控件都可以使用,其主要作用就是控…

【vue3实现微信小程序】从轮播图到公告栏的前端开发之旅

快速跳转: 我的个人博客主页👉:Reuuse博客 新开专栏👉:Vue3专栏 参考文献👉:uniapp官网 免费图标👉:阿里巴巴矢量图标库 ❀ 感谢支持!☀ 前情提要 &#x…

【大数据学习 | Spark-Core】RDD的缓存(cache and checkpoint)

1. 单应用缓存:cache 1.1 cache算子 cache算子能够缓存中间结果数据到各个executor中,后续的任务如果需要这部分数据就可以直接使用避免大量的重复执行和运算。 rdd 存储级别中默认使用的算子cache算子,cache算子的底层调用的是persist算子…

网络安全风险评估

项目背景 随着信息化技术的快速发展,特别是面向社会、政府机构、企业等业务系统的投入使用,各组织机构对网络和信息系统安全防护都提出了新的要求。为满足安全需求,需对组织机构的网络和信息系统的安全进行一次系统全面的评估,以…

Selenium 自动化测试demo

场景描述: 模拟用户登录页面操作,包括输入用户名、密码、验证码。验证码为算数运算,如下: 使用到的工具和依赖: 1. Selenium:pip install selenium 2. 需要安装浏览器驱动:这里使用的是Edge 3…

架构-微服务架构

文章目录 前言一、系统架构演变1. 单体应用架构2. 垂直应用架构3. 分布式架构4. SOA 架构5. 微服务架构 二. 微服务架构介绍1. 微服务架构的常见问题2. 微服务架构的常见概念3. 微服务架构的常见解决方案4. 解决方案选型 三. Spring Cloud Alibaba介绍1. 主要功能2. 组件 前言 …

unity | 动画模块之卡片堆叠切换

一、预览动画 可以放很多图,可以自己往后加,可以调图片x轴和y轴间距,可以调图片飞出方向,可以调堆叠方向。 图1 图片堆叠动画预览 二、纯净代码 有粉丝问我这个效果,最近很忙,没有时间细写,先…

Burp入门(2)-代理功能介绍

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:burp功能介绍(1)_哔哩哔哩_bilibili 本文详细介绍burp的代理功能。 一、插件配置代理 1. 安装代理插件(Goog…

Jupyter Notebook的安装和配置提示功能

Python开发环境搭建conda管理环境-CSDN博客 安装anaconda和对接到编译器的教程可以看上面这一篇 Jupyter Notebook是一种交互式计算环境,它允许用户在单个文档中编写和执行代码、方程、可视化和文本。与其他编译器相比,Jupyter Notebook的突出点在于其交…

计算机网络 实验七 NAT配置实验

一、实验目的 通过本实验理解网络地址转换的原理和技术,掌握扩展NAT/NAPT设计、配置和测试。 二、实验原理 NAT配置实验的原理主要基于网络地址转换(NAT)技术,该技术用于将内部私有网络地址转换为外部公有网络地址,从…

Ubuntu下用Docker部署群晖系统---Virtual DSM --zerotier实现连接

Ubuntu下用Docker部署群晖系统—Virtual DSM --zerotier实现连接 1. Docker 安装 安装最新docker curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo docker run hello-world2.docker-compose 安装 sudo pip install docker-compose测试安装是否成功…

css—轮播图实现

一、背景 最近和朋友在一起讨论的时候,我们提出了这样的一个提问,难道轮播图的效果只能通过js来实现吗?经过我们的一系列的争论,发现了这是可以通过纯css来实现这一效果的,CSS轮播图也是一种常见的网页展示方式&#x…

<项目代码>YOLOv8 航拍行人识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

2025蓝桥杯(单片机)备赛--扩展外设之UART1的原理与应用(十二)

一、串口1的实现原理 a.查看STC15F2K60S2数据手册: 串口一在590页,此款单片机有两个串口。 串口1相关寄存器: SCON:串行控制寄存器(可位寻址) SCON寄存器说明: 需要PCON寄存器的SMOD0/PCON.6为0,使SM0和SM…

redmi 12c 刷机

刷机历程 一个多月前网购了redmi 12c这款手机, 价格只有550,用来搞机再适合不过了, 拆快递后就开始倒腾,网上有人说需要等7天才能解锁,我绑定了账号过了几天又忍不住倒腾,最后发现这块手机不用等7天解锁成功了,开始我为了获取root权限, 刷入了很火的magisk,但是某一天仍然发现/…

五种创建k8s的configMap的方式及configmap使用

configmap介绍 Kubernetes 提供了 ConfigMap 来管理应用配置数据,将配置信息从容器镜像中解耦,使应用更灵活、可移植。 1、基于一个目录来创建ConfigMap ​ 你可以使用 kubectl create configmap 基于同一目录中的多个文件创建 ConfigMap。 当你基于目…

【机器学习chp7】SVM

参考1,笔记 SVM笔记.pdf 参考2:王木头视频 什么是SVM,如何理解软间隔?什么是合叶损失函数、铰链损失函数?SVM与感知机横向对比,挖掘机器学习本质_哔哩哔哩_bilibili 目录 一、SVM模型 二、构建决策函…

TailwindCss 总结

目录 一、简介 二、盒子模型相关 三、将样式类写到一个类里面apply 四、一款TailWind CSS的UI库 一、简介 官方文档:Width - TailwindCSS中文文档 | TailwindCSS中文网 Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS 类…

数据结构 (6)栈的应用举例

1. 递归调用 递归函数在执行时,会将每一层的函数调用信息(包括局部变量、参数和返回地址)存储在栈中。当递归函数返回时,这些信息会从栈中弹出,以便恢复之前的执行状态。栈的后进先出(LIFO)特性…