JavaScript高级程序设计(第四版)--学习记录之基本引用类型

Date

Date类型将日期保存为自协调世界时间1970年1月1日午夜至今所经过的毫秒数。

创建日期对象

let now = new Date()

Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。

let time = new Date(Date.parse("May 24,2024"));

Date.now()方法,返回表示方法执行日期和时间的毫秒数。

RegExp

RegExp.exec()如果找到匹配项,则返回包含第一个匹配信息的数组,如果没找到匹配项,则返回null。

let test = "mom and dad and baby";
let pattern = /mom(and dad (and baby)?)?/gi;
let matches = pattern.exec(test);
console.log(matches.index);//0
console.log(matches.input);//'mom and dad and baby'
console.log(matches[0]);//'mom and dad and baby'
console.log(matches[1]);//'and dad and baby'
console.log(matches[2]);//'and baby'

RegExp.test(),接收一个字符串参数,如果输入的文本与模式匹配,则参数返回true。

let test = '000';
lat pattern = /\d{3}-\d{2}-\d{4}/;
console.log(pattern.test(test));//false

原始值包装类型 

ES提供了3种特殊的引用类型:Boolean、Number、String。引用类型与原始值包装类型的主要区别在于对象的声明周期。通过new实例化引用类型后,得到的实例会在离开作用域是被销毁,而自动创建的原始值包装对象则只存在于访问它的那行代码执行期间。

字符串操作方法

首先是 concat(),用于将一个或多个字符串拼接成一个新字符串。
let stringValue = "hello "; 
let result = stringValue.concat("world"); 
console.log(result); // "hello world" 
console.log(stringValue); // "hello"
虽然 concat()方法可以拼接字符串,但更常用的方式是使用加号操作符(+)。而且多数情况下,对于拼接多个字符串来说,使用加号更方便。
提取子字符串的方法:slice()、substr()和 substring()。这3个方法都返回调用它们的字符串的一个子字符串,而且都接收一或两个参数。第一个参数表示子字符串开始的位置,第二个参数表示子字符串结束的位置。对 slice()和 substring()而言,第二个参数是提取结束的位置(即该位置之前的字符会被提取出来)。对 substr()而言,第二个参数表示返回的子字符串数量。任何情况下,省略第二个参数都意味着提取到字符串末尾。与 concat()方法一样,slice()、substr() 和 substring()也不会修改调用它们的字符串,而只会返回提取到的原始新字符串值。
let stringValue = "hello world"; 
console.log(stringValue.slice(3)); // "lo world" 
console.log(stringValue.substring(3)); // "lo world" 
console.log(stringValue.substr(3)); // "lo world" 
console.log(stringValue.slice(3, 7)); // "lo w" 
console.log(stringValue.substring(3,7)); // "lo w" 
console.log(stringValue.substr(3, 7)); // "lo worl"
定位子字符串:indexOf()和 lastIndexOf()。这两个方法从字符
串中搜索传入的字符串,并返回位置(如果没找到,则返回-1)。两者的区别在于indexOf()方法 从字符串开头开始查找子字符串,而 lastIndexOf()方法从字符串末尾开始查找子字符串。
let stringValue = "hello world"; 
console.log(stringValue.indexOf("o")); // 4 
console.log(stringValue.lastIndexOf("o")); // 7
是否包含另一个字符串的方法:startsWith()、 endsWith()和 includes()。这些方法都会从字符串中搜索传入的字符串,并返回一个表示是否包含的布尔值。它们的区别在于startsWith()检查开始于索引 0 的匹配项,endsWith()检查开始于索引(string.length - substring.length)的匹配项,而 includes()检查整个字符串。
let message = "foobarbaz"; 
console.log(message.startsWith("foo")); // true 
console.log(message.startsWith("bar")); // false 
console.log(message.endsWith("baz")); // true 
console.log(message.endsWith("bar")); // false 
console.log(message.includes("bar")); // true 
console.log(message.includes("qux")); // false

trim()方法,会创建字符串的一个副本,删除前后所有空格符,在返回结果。trimLeft()和trimRight()方法分别用于从字符串开始和末尾清理空格符。

let stringValue = " hello world "; 
let trimmedStringValue = stringValue.trim(); 
console.log(stringValue); // " hello world " 
console.log(trimmedStringValue); // "hello world"

repeat()方法,接收一个整数参数,表示要将字符串复制多少次,然后返回拼接所有副本后的结果。

let string = 'banana';
console.log(string.repeat(3));//banana banana banana
padStart()和 padEnd()方法会复制字符串,如果小于指定长度,则在相应一边填充字符,直至满足长度条件。这两个方法的第一个参数是长度,第二个参数是可选的填充字符串,默认为空格 .
let stringValue = "foo"; 
console.log(stringValue.padStart(6)); // " foo" 
console.log(stringValue.padStart(9, ".")); // "......foo" 
console.log(stringValue.padEnd(6)); // "foo " 
console.log(stringValue.padEnd(9, ".")); // "foo......"
字符串大小写转换方法:toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase()。
let stringValue = "hello world"; 
console.log(stringValue.toLocaleUpperCase()); // "HELLO WORLD" 
console.log(stringValue.toUpperCase()); // "HELLO WORLD" 
console.log(stringValue.toLocaleLowerCase()); // "hello world" 
console.log(stringValue.toLowerCase()); // "hello world"

字符串模式匹配方法

  • match()返回的第一个元素是整个模式匹配的字符串,其余元素则是与表达式中的捕获组匹配的字符串。
let string = 'cat';
let matches = string.match(/.at/);
  • search()返回模式第一个匹配的位置索引,如果没找到返回-1,始终从字符串开头向后匹配。
let text = "cat, bat, sat, fat"; 
let pos = text.search(/at/); 
console.log(pos); // 1
  • replace()接收两个参数,第一个参数可以是一个正则对象或一个字符除按,第二个参数可以是一个字符除按或一个函数。如果第一个参数是字符除按,那么指挥替换第一个字符串。要想替换所有子字符串,第一个参数必须为正则表达式并且带全局标记。
let text = "cat, bat, sat, fat"; 
let result = text.replace("at", "ond"); 
console.log(result); // "cond, bat, sat, fat" 
result = text.replace(/at/g, "ond"); 
console.log(result); // "cond, bond, sond, fond"
  • split()会根据传入的分隔符将字符串拆分成数组。作为分隔符的参数可以是字符串,也可以是正则对象。还可以传入第二个参数,即数组大小,确保返回的数组不会超过指定大小。
let colorText = "red,blue,green,yellow"; 
let colors1 = colorText.split(","); // ["red", "blue", "green", "yellow"] 
let colors2 = colorText.split(",", 2); // ["red", "blue"] 
let colors3 = colorText.split(/[^,]+/); // ["", ",", ",", ",", ""]

字符串比较方法

localeCompare(),这个方法比较两个字符串,返回如下3个值中的一个

  1. 如果按照字母表顺序,字符串应该排在字符串参数牵头,则返回负值。
  2. 如果字符串于字符串参数相等,则返回0.
  3. 如果按照字母表顺序,字符串应该排在字符串参数后头,则返回正值。
let stringValue = "yellow"; 
console.log(stringValue.localeCompare("brick")); // 1 
console.log(stringValue.localeCompare("yellow")); // 0 
console.log(stringValue.localeCompare("zoo")); // -1

Math

Math对象属性

最大最小值方法:min() max()

let max = Math.max(3, 54, 32, 16); 
console.log(max); // 54 
let min = Math.min(3, 54, 32, 16); 
console.log(min); // 3

舍入方法:

  1. Math.ceil()方法始终向上舍入为最接近的整数。
  2. Math.floor()方法始终向下舍入为最接近的整数。
  3. Math.round()方法执行四舍五入。
  4. Math.frounf()方法返回数值最接近的单精度浮点值表示。
console.log(Math.ceil(25.9)); // 26
console.log(Math.round(25.9)); // 26
console.log(Math.fround(0.4)); // 0.4000000059604645
console.log(Math.floor(25.9)); // 25

random()方法:返回一个0-1范围内的随机数,包含0但不包含1.

其他方法

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 3 整合 SpringDoc OpenAPI 生成接口文档

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

MySQL锁和使用

在MySQL中,锁用于控制并发访问,以保证数据的一致性和完整性。MySQL提供了多种类型的锁,包括表级锁、行级锁和页面级锁。以下是MySQL中各种锁的详细介绍及其使用方法: 1. 表级锁(Table Locks) 表级锁用于锁…

Studying-代码随想录训练营day22| 回溯理论基础、77.组合、216.组合总和II、17.电话号码的字母组合

第22天,回溯章节开始!一大算法难点,加油加油! 回溯理论基础组合问题的剪枝操作 文档讲解:代码随想录回溯理论基础 视频讲解:回溯理论基础 回溯法也叫回溯搜索法,它是一种搜索,遍历的…

Python 算法交易实验73 QTV200第二步: 数据清洗并写入ClickHouse

说明 先检查一下昨天启动的worker是否正常工作,然后做一些简单的清洗,存入clickhouse。 内容 1 检查数据 from Basefuncs import * # 将一般字符串转为UCS 名称 def dt_str2ucs_blockname(some_dt_str):some_dt_str1 some_dt_str.replace(-,.).re…

【日记】软考居然一次过了(620 字)

正文 早上空闲的时候,上 QQ 看了一下,许久不见动静的系统架构设计师群有人说出分了。我想高级都出分了,中级应该也出来了,于是用手机查了一下。看到分数几乎快要泪从中来。为什么软考能一次过,银行从业资格证考了两三…

放烟花短视频素材去哪里找?去哪里下载?烟花素材网分享

在当代社会,短视频凭借其独有的魅力成为大众传递情感、记录生活、分享快乐的新兴方式。特别是在庆祝节日和特殊时刻时,烟花的绚丽效果常常被用来吸引观众的目光,成为视频作品中的亮点。然而,对于短视频制作者来说,寻找…

【SCAU操作系统】期末复习简答及计算题例题解析

一、写出下列英文缩写词在计算机系统中的英文或中文全名。 OS: Operating System 操作系统PSW: Program Status Word 程序状态字FCFS: First Come First Serve 先来先服务PCB: Process Control Block 进程控制块DMA: Direct Memory Access 直接存储器存取MMU: Memory Manageme…

Does a vector database maintain pre-vector chunked data for RAG systems?

题意:一个向量数据库是否为RAG系统维护预向量化分块数据? 问题背景: I believe that when using an LLM with a Retrieval-Augmented Generation (RAG) approach, the results retrieved from a vector search must ultimately be presented…

从源码到上线:直播带货系统与短视频商城APP开发全流程

很多人问小编,一个完整的直播带货系统和短视频商城APP是如何从源码开发到最终上线的呢?今天,笔者将详细介绍这一全过程。 一、需求分析与规划 1.市场调研与需求分析:首先需要进行市场调研,了解当前市场的需求和竞争情…

Flutter学习:从搭建环境到运行

一、开发环境的搭建 本文所示内容都是在Windows系统下进行的。 1、下载 Flutter SDK Flutter 官网(https://docs.flutter.cn/release/archive?tabwindows) 或者通过 git clone -b master https://github.com/flutter/flutter.git 下载 2、配置环境…

VMware 最新的安全漏洞公告VMSA-2024-0013

#深度好文计划# 一、摘要 2024年6月26日,VMware 发布了最新的安全漏洞公告 VMSA-2024-0013,修复了 VMware ESXi 和 VMware vCenter 中的多个安全漏洞。 VMSA-2024-0013:VMware ESXi 和 vCenter Server 更新修正了多个安全性漏洞 &#xff…

datax入门(datax的安装与简单使用)——01

datax入门(datax的安装与简单使用)——01 1. 官网2. 工具部署(通过下载DataX工具包)2.1 下载、解压2.2 配置2.2.1 查看配置模版2.2.2 根据模版配置json2.2.3 启动DataX 3. datax的简单使用3.1 mysql2stream3.2 mysql2mysql3.2.1 拼…

评估大型语言模型生成文章的能力

1. AI解读 1.1. 总体概要 本文探讨了大型语言模型(LLMs)如GPT-4在生成特定领域(如计算机科学中的自然语言处理NLP)教育调查文章方面的能力和局限性。研究发现,尽管GPT-4能够根据特定指导生成高质量的调查文章&#x…

使用jupyter打开本地ipynb文件的方法

常用方法: 先启动jupyter,然后在打开的页面点击upload,选择想要打开的文件上传然后打开,但是这样其实是先复制了一份到jupyter中,然后打开运行。而我不想复制。 方法二 先打开项目文件所在文件夹,文件夹…

背靠广汽、小马智行,如祺出行打得过滴滴和百度吗?

©自象限原创 作者丨艾AA 编辑丨薛黎 北京时间6月14日凌晨,在特斯拉股东大会上,马斯克阐述了对Robotaxi(自动驾驶出租车)商业模式的构想——特斯拉不仅会运营自己的无人驾驶出租车车队,还可以让特斯拉车主们的爱…

Flutter学习目录

学习Dart语言 官网:https://dart.cn/ 快速入门:Dart 语言开发文档(dart.cn/guides) 学习Flutter Flutter生命周期 点击跳转Flutter更换主题 点击跳转StatelessWidget和StatefulWidget的区别 点击跳转学习Flutter中新的Navigato…

一文入门CMake

我们前几篇文章已经入门了gcc和Makefile,现在可以来玩玩CMake了。 CMake和Makefile是差不多的,基本上是可以相互替换使用的。CMAke可以生成Makefile,所以本质上我们还是用的Makefile,只不过用了CMake就不用再写Makefile了&#x…

Spring底层原理之bean的加载方式四 @import 注解

bean的加载方式四 import 第四种bean的导入方式 是import导入的方式 在配置类上面加上注解就行 package com.bigdata1421.config;import com.bigdata1421.bean.Dog; import org.springframework.context.annotation.Import;Import(Dog.class) public class SpringConfig4 {…

Linux高级编程——进程

1.进程的含义? 进程是一个程序执行的过程,会去分配内存资源,cpu的调度 PID, 进程标识符 当前工作路径 chdir umask 0002 进程打开的文件列表 文件IO中有提到 (类似于标准输入 标准输出的编号,系统给0,1&#xf…