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

news2024/10/7 8:19:55

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.

其他方法

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

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

相关文章

Jmeter+InfluxDB+Grafana性能测试数据展示

JmeterInfluxDBGrafana提供了一种更好的对Jmeter压测结果的实时监控展示。可以理解为数据源产生的数据加上时间记录并存储,然后使用各种开源图表组件进行展示。实现jmeter报告的更好的可视化展示 1)方便测试结果数据落地以及更好的分析 2)将…

超好用的思维导图—万兴亿图脑图 v10解锁版安装教程 (思维导图软件和头脑风暴工具)

前言 万兴亿图脑图 (Wondershare EdrawMind) 是一款多平台协作思维导图软件和头脑风暴工具,亿图思维导图提供丰富的布局,样式,主题及配色方案,集成拥有数万幅原创思维导图作品的思维导图社区,涵盖教育,职场,自我提升等各大领域精华知识.支持会议演示,多端创作,云端存储,导图分…

BioCLIP:物种图像的基础视觉模型

从无人机到个人手机,各种相机收集的自然世界图像是越来越丰富的生物信息来源。从图像中提取生物相关信息用于科学的计算方法和工具激增,尤其是计算机视觉。然而,其中大多数都是为特定任务设计的,不容易适应或扩展到新的问题、环境…

第30课 绘制原理图——放置网络标签

什么是网络标签? 我们在很多电路图中都能看到,为了让图纸更加简洁,并不是每一根导线都要确确实实地画出来。可以在导线悬空的一端添加一个名称标签,接着在另一根导线的悬空一端添加上一个同名的名称标签,那么就可以让…

1.回溯算法.基础

1.回溯算法 基础知识题目1.组合2.组合-优化3.组合总和|||4.电话号码和字母组合5.组合总和6.组合总和II7.分割回文串8.复原IP地址 基础知识 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯 因为回溯的本质是穷…

【毛毛虫案例-重力 Objective-C语言】

一、接下来,我们给这个毛毛虫,添加一下重力 1.把我们之前的代码,复制粘贴一份儿,改个名字,叫做:17-毛毛虫案例-重力, 重力的话,实际上,就比较简单了啊,那我们重力的话,去添加的时候,我也要在外面,去添加, 重力的话,叫做啥,UIGravityBehavior,啊, UIGravity…

2024年度临沂市安全文化书画摄影展开幕

人海信息网山东讯 6月27日,2024年度临沂市安全文化书画摄影作品展,在临沂高新区隆重开幕。本次书画摄影展深入贯彻“以人为本,安全发展”的重要思想,立意高远,内涵丰富,思想深邃,承载着健康、幸…

【公开数据集获取】

Open Images Dataset https://www.youtube.com/watch?vdLSFX6Jq-F0

MySQL锁和使用

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

AI绘画Stable Diffusion 超强一键去除图片中的物体,免费使用!

大家好,我是设计师阿威 在生成图像时总有一些不完美的小瑕疵,比如多余的物体或碍眼的水印,它们破坏了图片的美感。但别担心,今天我们将介绍一款神奇的工具——sd-webui-cleaner,它可以帮助我们使用Stable Diffusion轻…

简易深度学习(1)深入分析神经元及多层感知机

一、神经元 单个神经元结构其实可以认为是一个线性回归模型。例如下图中 该神经元输入为三个特征(x1,x2,x3),为了方便理解,大家可以认为每条线上都有一个权重和特征对应(w1,w2&…

62.指针和二维数组(2)

一.指针和二维数组 1.如a是一个二维数组,则数组中的第i行可以看作是一个一维数组,这个一维数组的数组名是a[i]。 2.a[i]代表二维数组中第i行的首个元素的地址,即a[i][0]的地址。 二.进一步思考 二维数组可以看作是数组的数组,本…

算法入门:二分查找及其Java实现

在程序开发中,算法是解决问题的核心。本篇博客将详细讲解一种高效的查找算法——二分查找,并通过Java代码示例帮助你理解其实现和应用。 如果你觉得这篇文章对你有帮助,不要忘记点赞、收藏和关注我,这将是对我最大的支持和鼓励&am…

Vue.js中的虚拟DOM

一.节点和状态 在我们平常对DOM操作的时候,之前在vue没有诞生之前,以命令式的方式对DOM进行操作,页面上的每一个元素都可以看做成一个节点状态。 二.剔除和渲染 框架都有自己渲染的方式,假设一个页面的状态,随着Ajax请求的放松,状态发生改变,有以下的两种方式供你选择&#…

CVE-2024-37032漏洞预警:尽快升级Ollama

实时了解业内动态,论文是最好的桥梁,专栏精选论文重点解读热点论文,围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)…

生成随机函数f3,利用f3生成f18(python)

一、题目 给定一个完全随机函数f3。能够完全随机产生1~3之间任意一个自然数。现在要构造一个f18,让其能随机产生1~18之间任意一个自然数,要求写出f18的函数,另外要测试是否符合预期,f18要用f3 二、代码 欢迎大家给我更优解&…

python 识别图片点击,设置坐标,离设置坐标越近的优先识别点击

import pyautogui import cv2 import numpy as np import mathdef find_and_click(template_path, target_x, target_y, match_threshold0.8):"""在屏幕上查找目标图片并点击。Args:template_path: 目标图片的路径。target_x: 预设的坐标 x 轴值。target_y: 预设…

Jenkins教程-10-发送飞书测试报告通知

上一小节我们学习了发送企业微信测试报告通知的方法,本小节我们讲解一下发送飞书测试报告通知的方法。 1、自动化用例执行完后,使用pytest_terminal_summary钩子函数收集测试结果,存入本地status.txt文件中,供Jenkins调用 conft…

计算机视觉-期末复习-简答/名词解释/综合设计

目录 第一讲--计算机/机器视觉概述 名词解释 简答 第二讲--图像处理概述 名词解释 简答 第三讲没划重点习题 第四讲--特征提取与选择 名词解释 简答 综合题 第五讲--不变特征 名词解释 简答 第六讲--物体分类与检测 简答 综合题 第七讲--视觉注意机制 简答 …

大数据------JavaWeb------MyBatis(完整知识点汇总)

MyBatis MyBatis简介 定义 它是一款优秀的持久层框架,用于简化JDBC开发它原来是Apache的一个开源项目iBatis,后来改名为MyBatis中文官网:https://mybatis.org/mybatis-3/zh_CN/index.html JaveEE三层架构 表现层(做页面展示&…