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方法】(一)

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

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

相关文章

SSM全家桶 1.Maven

或许总要彻彻底底地绝望一次 才能重新再活一次 —— 24.11.20 maven在如今的idea中已经实现自动配置,不需要我们手动下载 一、Maven的简介和快速入门 Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建测试、打包和发…

Oracle SQL*Plus中的SET VERIFY

在 Oracle SQL*Plus 中,SET VERIFY ON 和 SET VERIFY OFF 是两个用于控制命令执行前后显示变量值的命令。这些命令主要用于调试和验证 SQL 脚本中的变量替换情况。 一、参数说明 1.1 SET VERIFY ON 作用:启用变量替换的验证功能。当启用时,S…

双因子认证:统一运维平台安全管理策略

01双因子认证概述 双因子认证(Two-Factor Authentication,简称2FA)是一种身份验证机制,它要求用户提供两种不同类型的证据来证明自己的身份。这通常包括用户所知道的(如密码)、用户所拥有的(如…

【Unity ShaderGraph实现流体效果之Function入门】

Unity ShaderGraph实现流体效果之Node入门(一) 前言Shader Graph NodePosition NodeSplit NodeSubtract NodeBranch Node 总结 前言 Unity 提供的Shader Graph在很大程度上简化了开发者对于编写Shader的工作,只需要拖拽即可完成一个视觉效果…

力扣—15.三数之和

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…

Java项目实战II基于SpringBoot前后端分离的网吧管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着互联网技术的不断发展…

【设计模式系列】责任链模式(十六)

一、什么是责任链模式 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式。其核心思想是将请求的发送者和接收者解耦,通过一个中介链来传递请求,使得多个对象都有可能接收请求,从而避免请求发送者和接…

算法学习笔记(十):位运算、数论等

一.位运算基础 集合与集合之间的位运算 集合和元素 常用函数 1.使两个整数相等的位更改次数 给你两个正帧数 n 和 k,你可以选择 n 的二进制表示 中任意一个值为 1 的位, 并将其改为0,返回使得 n 等于 k 所需要的更改次数,如无法实…

恋爱通信史之完整性

在前面的章节中,介绍了对通信消息的加密,可以保证保密性(机密性)。虽说中间人无法解密通信消息的内容,但是可以篡改通信的消息。在接受者视角来看,是无法识别通信消息是否被篡改。因此,必须引入一种机制,保…

数据结构第一讲

数据结构定义 算法的定义 什么是好算法? 空间复杂度 时间复杂度 例子1 打印1到N之间的正整数 有递归和循环两种方法实现。 但是在数字变大后,递归的方法会导致内存占用过多而崩溃。 而循环则不会 例子2 写程序给定多项式在X处的值 从里往外算的算…

安卓应用安装过程学习

声明:此文章来自http://shuwoom.com/?p60的学习记录 启动式安装 public static final IPackageManager main(Context context, Installer installer,boolean factoryTest, boolean onlyCore) {PackageManagerService m new PackageManagerService(context, inst…

输入/输出管理 III(磁盘和固态硬盘)

一、磁盘 【总结】: 磁盘(Disk)是由表面涂有磁性物质的物理盘片,通过一个称为磁头的导体线圈从磁盘存取数据。在读/写操作期间,磁头固定,磁盘在下面高速旋转。如下图所示: 磁盘盘面…

使用flink编写WordCount

1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 流程图&#xff1a; DataStream API开发 //nightlies.apache.org/flink/flink-docs-release-1.13/docs/dev/datastream/overview/ 添加依赖 <properties>&l…

# issue 4 进程控制函数

目录 一、进程控制函数一 二、进程控制函数二 启动进程&#xff1a;&#xff08;exec系列&#xff09; 创建新进程&#xff1a; 测试代码&#xff1a; 测试结果&#xff1a; 三、进程控制函数三 结束进程&#xff1a; 测试代码&#xff1a; 测试结果&#xff1a; 四、…

Java项目实战II基于SpringBoot的共享单车管理系统开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在共享经济蓬勃发展的今天…

Linux 网络编程之UDP套接字

前言 前面我们对网络的发展&#xff0c;网络的协议、网路传输的流程做了介绍&#xff0c;最后&#xff0c;我们还介绍了 IP 和 端口号&#xff0c;ip port 叫做 套接字 socket&#xff0c; 本期我们就来介绍UDP套接字编程&#xff01; 目录 1、预备知识 1.1 传输层协议: T…

---Arrays类

一 java 1.Arrays类 1.1 toString&#xff08;&#xff09; 1.2 arrays.sort( )-----sort排序 1&#xff09;直接调用sort&#xff08;&#xff09; Arrays.sort() 方法的默认排序顺序是 从小到大&#xff08;升序&#xff09;。 2&#xff09;定制排序【具体使用时 调整正负…

Java 对象头、Mark Word、monitor与synchronized关联关系以及synchronized锁优化

1. 对象在内存中的布局分为三块区域&#xff1a; &#xff08;1&#xff09;对象头&#xff08;Mark Word、元数据指针和数组长度&#xff09; 对象头&#xff1a;在32位虚拟机中&#xff0c;1个机器码等于4字节&#xff0c;也就是32bit&#xff0c;在64位虚拟机中&#xff0…

6.7机器学习期末复习题

空间 样本空间 就是属性的所有可能情况&#xff0c;包括了一切可能出现或不可能出现的所有样本情况 版本空间&假设空间 假设空间就是在样本空间的基础上&#xff0c;给所有属性都加了一个通配符&#xff0c;表示任意即可&#xff1b;以及加上了一个空集&#xff0c;表示…

Qt界面设计时使各控件依据窗口缩放进行栅格布局的方法

图1 最终效果 想要达成上述图片的布局效果&#xff0c;具体操作如下&#xff1a; 新建一窗体&#xff1a; 所需控件如下&#xff1a; Table View控件一个&#xff1b; Group Box控件一个&#xff1b; Push Button控件2个&#xff1b; Horiziontal Spacer控件2个&#xf…