第 13 章 JavaScript基本包装类型

第 13 章 JavaScript基本包装类型

1.基本包装类型概述

2.Boolean 类型

3.Number 类型

4.String 类型

为了便于操作基本类型值,ECMAScript 提供了 3 个特殊的引用类型:Boolean、Number和 String。这些类型与其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。

一.基本包装类型概述

var box = 'Mr. Lee';	//定义一个字符串var box2 = box.substring(2);	//截掉字符串前两位alert(box2);	//输出新字符串

变量 box 是一个字符串类型,而 box.substring(2)又说明它是一个对象(PS:只有对象才会调用方法),最后把处理结果赋值给 box2。'Mr. Lee’是一个字符串类型的值,按道理它不应该是对象,不应该会有自己的方法,比如:

alert('Mr. Lee'.substring(2));	//直接通过值来调用方法

1.字面量写法:

var box = 'Mr. Lee';	//字面量box.name = 'Lee';	//无效属性box.age = function () {	//无效方法return 100;};alert(box);	//Mr. Leealert(box.substring(2));	//. Leealert(typeof box);	//stringalert(box.name);	//undefinedalert(box.age());	//错误

2.new 运算符写法:

var box = new String('Mr. Lee');	//new 运算符box.name = 'Lee';	//有效属性box.age = function () {	//有效方法return 100;};alert(box);	//Mr. Leealert(box.substring(2));	//. Leealert(typeof box);	//objectalert(box.name);	//Leealert(box.age());	//100

以上字面量声明和 new 运算符声明很好的展示了他们之间的区别。但有一定还是可以肯定的,那就是不管字面量形式还是 new 运算符形式,都可以使用它的内置方法。并且 Boolean 和 Number 特性与 String 相同,三种类型可以成为基本包装类型。
PS:在使用 new 运算符创建以上三种类型的对象时,可以给自己添加属性和方法,但我们建议不要这样使用,因为这样会导致根本分不清到底是基本类型值还是引用类型值。

二.Boolean 类型

Boolean 类型没有特定的属性或者方法。

三.Number 类型

Number 类型有一些静态属性(直接通过 Number 调用的属性,而无须 new 运算符)和方

法。

Number 静态属性

属 性 描述

MAX_VALUE 表示最大数

MIN_VALUE 表示最小值

NaN 非数值

NEGATIVE_INFINITY 负无穷大,溢出返回该值

POSITIVE_INFINITY 无穷大,溢出返回该值

prototype 原型,用于增加新属性和方法

Number 对象的方法

方 法 描述

toString() 将数值转化为字符串,并且可以转换进制

toLocaleString() 根据本地数字格式转换为字符串

toFixed() 将数字保留小数点后指定位数并转化为字符串

toExponential() 将数字以指数形式表示,保留小数点后指定位数并转化为
字符串

toPrecision() 指数形式或点形式表述数,保留小数点后面指定位数并转
化为字符串

var box = 1000.789;alert(box.toString());	//转换为字符串,传参可以转换进制alert(box.toLocaleString());	//本地形式,1,000.789alert(box.toFixed(2));	//小数点保留,1000.78alert(box.toExponential());	//指数形式,传参会保留小数点alert(box.toPrecision(3));	//指数或点形式,传参保留小数点

四.String 类型

String 类型包含了三个属性和大量的可用内置方法。

String 对象属性

属 性 描述

length 返回字符串的字符长度

constructor 返回创建 String 对象的函数

prototype 通过添加属性和方法扩展字符串定义

String 也包含对象的通用方法,比如 valueOf()、toLocaleString()和 toString()方法,但这

些方法都返回字符串的基本值。

字符方法

方 法 描述

charAt(n) 返回指定索引位置的字符

charCodeAt(n) 以 Unicode 编码形式返回指定索引位置的字符

var box = 'Mr.Lee';	
alert(box.charAt(1));	//r
alert(box.charCodeAt(1));	//114
alert(box[1]);	//r,通过数组方式截取

PS:box[1]在 IE 浏览器会显示 undefined,所以使用时要慎重。

字符串操作方法

方 法 描述

concat(str1…str2) 将字符串参数串联到调用该方法的字符串

slice(n,m) 返回字符串 n 到 m 之间位置的字符串

substring(n,m) 同上

substr(n,m) 返回字符串 n 开始的 m 个字符串

var box = 'Mr.Lee';			alert(box.concat(' is ', ' Teacher ', '!'));	//Mr.Lee is Teacher !alert(box.slice(3));		//Leealert(box.slice(3,5));		//Lealert(box.substring(3));		//Leealert(box.substring(3,5));		//Lealert(box.substr(3));		//Leealert(box.substr(3,5));		//Leevar box = 'Mr.Lee';			alert(box.slice(-3));		//Lee,6+(-3)=3 位开始alert(box.substring(-3));		//Mr.Lee 负数返回全部alert(box.substr(-3));		//Lee,6+(-3)=3 位开始var box = 'Mr.Lee';			alert(box.slice(3, -1));		//Le 6+(-1)=5, (3,5)alert(box.substring(3, -1));		//Mr. 第二参为负,直接转 0,//并且方法会把较小的数字提前,(0,3)alert(box.substr(3, -1));		//'' 第二参数为负,直接转 0 ,(3,0)

PS:IE 的 JavaScript 实现在处理向 substr()方法传递负值的情况下存在问题,它会返回原始字符串,使用时要切记。
字符串位置方法

方  法			描述	
indexOf(str, n)		从 n 开始搜索的第一个 str,并将搜索的索引值返回	lastIndexOf(str, n)		从 n 开始搜索的最后一个 str,并将搜索的索引值返回	var box = 'Mr.Lee is Lee';			alert(box.indexOf('L'));		//3	alert(box.indexOf('L', 5));		//10	alert(box.lastIndexOf('L'));		//10	alert(box.lastIndexOf('L', 5));		//3,从指定的位置向前搜索PS:如果没有找到想要的字符串,则返回-1。		示例:找出全部的 L			var box = 'Mr.Lee is Lee';		//包含两个 L 的字符串var boxarr = [];		//存放 L 位置的数组var pos = box.indexOf('L');		//先获取第一个 L 的位置while (pos > -1) {		//如果位置大于-1,说明还存在 Lboxarr.push(pos);		//添加到数组pos = box.indexOf('L', pos + 1);	//从新赋值 pos 目前的位置}		
alert(boxarr);	//输出大小写转换方法

方 法 描述

toLowerCase(str)		将字符串全部转换为小写toUpperCase(str)		将字符串全部转换为大写toLocaleLowerCase(str)		将字符串全部转换为小写,并且本地化toLocaleupperCase(str)		将字符串全部转换为大写,并且本地化var box = 'Mr.Lee is Lee';	
alert(box.toLowerCase());	//全部小写
alert(box.toUpperCase());	//全部大写
alert(box.toLocaleLowerCase());	//
alert(box.toLocaleUpperCase());	//

PS:只有几种语言(如土耳其语)具有地方特有的大小写本地性,一般来说,是否本地化效果都是一致的。

字符串的模式匹配方法

方 法 描述

match(pattern)	返回 pattern 中的子串或 nullreplace(pattern, replacement)	用 replacement 替换 patternsearch(pattern)	返回字符串中 pattern 开始位置split(pattern)	返回字符串按指定 pattern 拆分的数组

正则表达式在字符串中的应用,在前面的章节已经详细探讨过,这里就不再赘述了。以上中 match()、replace()、serach()、split()在普通字符串中也可以使用。

var box = 'Mr.Lee is Lee';	
alert(box.match('L'));	//找到 L,返回 L 否则返回 null
alert(box.search('L'));	//找到 L 的位置,和 indexOf 类型
alert(box.replace('L', 'Q'));	//把 L 替换成 Q
alert(box.split(' '));	//以空格分割成字符串
其他方法

方 法 描述

fromCharCode(ascii)	静态方法,输出 Ascii 码对应值localeCompare(str1,str2)	比较两个字符串,并返回相应的值alert(String.fromCharCode(76));	//L,输出 Ascii 码对应值localeCompare(str1,str2)方法详解:比较两个字符串并返回以下值中的一个;1.如果字符串在字母表中应该排在字符串参数之前,则返回一个负数。(多数-1)2.如果字符串等于字符串参数,则返回 0。3.如果字符串在自附表中应该排在字符串参数之后,则返回一个正数。(多数 1)var box = 'Lee';alert(box.localeCompare('apple'));	//1alert(box.localeCompare('Lee'));	//0alert(box.localeCompare('zoo'));	//-1HTML 方法

方 法 描述

anchor(name)	<a name="name">str</a>big()	<big>str</big>blink()	<blink>str</blink>bold()	<b>Str</b>fixed()	<tt>Str</tt>fontcolor(color)	<font color="color">str</font>fontsize(size)	<font size="size">str</font>link(URL)	<a href="URL">str</a>small()	<small>str</small>strike()	<strike>str</strike>italics()	<i>italics</i>sub()	<sub>str</sub>sup()	<sup>str</sup>

以上是通过 JS 生成一个 html 标签,根据经验,没什么太大用处,做个了解。

var box = 'Lee'; // alert(box.link('http://www.xxx.com')); //超链接

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

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

相关文章

EehCache介绍、应用场景和示例代码

EhCache 概述 EhCache 是一个高性能、轻量级的 Java 缓存库&#xff0c;广泛应用于各种 Java 应用中。EhCache 提供了丰富的功能&#xff0c;包括内存缓存、磁盘缓存、分布式缓存、持久化等&#xff0c;并且可以和 Spring 框架无缝集成。它支持基于内存和磁盘的混合存储&#…

除了按值和引用,方法参数的第三种传递方式

一、官方描述 三种参数传递方式并非我们杜撰出来的&#xff0c;而是写在.NET最核心的规范文档ECMA-355中&#xff08;I.12.4.1.5&#xff09;&#xff0c;原文如下&#xff1a; The CLI supports three kinds of parameter passing, all indicated in metadata as part of the …

WPS宏实现一个表格拆分成多个表格的功能

把首列名称中一样的分别创建该名称时间戳的新表格&#xff0c;比如有个表格存储各个省的信息&#xff0c;江苏的有50行数据&#xff0c;山西的55行数据等等&#xff0c;这个就是把江苏的创建一个新表保存&#xff0c;山西的创建一个新表格保存。里面主要是表格的创建与关闭相关…

Nginx 优化与防盗链

文章目录 Nginx 优化与防盗链一、隐藏版本号1.1 修改配置文件方式1.1.1 操作步骤 1.2 修改源码方式1.2.1 操作步骤 二、修改用户与组2.1 操作步骤 三、缓存时间3.1 操作步骤 四、日志切割4.1 操作步骤 五、连接超时5.1 操作步骤 六、更改进程数6.1 操作步骤 七、配置网页压缩7.…

【论文分享】Graviton: Trusted Execution Environments on GPUs 2018’OSDI

目录 AbstractIntroductioncontributions BackgroundGPUSoftware stackHardwareContext and channel managementCommand submissionProgramming modelInitializationMemory allocationHost-GPU transfersKernel dispatch Sharing Intel SGX Threat ModelOverviewGraviton Archi…

CLIP-VIT-L + Qwen 多模态源码阅读 - 语言模型篇(3)

多模态学习笔记 - 语言模型篇&#xff08;3&#xff09; 参考repo:WatchTower-Liu/VLM-learning; url: VLLM-BASE 吐槽 今天接着昨天的源码继续看&#xff0c;黑神话&#xff1a;悟空正好今天发售&#xff0c;希望广大coder能玩的开心~ 学习心得 前情提要 详情请看多模态…

设计模式笔记01(java版)

文章目录 设计模式概述学习设计模式的必要性设计模式分类创建型模式结构型模式行为型模式 UML类图概述类图的作用类图表示法类的表示方式类与类之间关系的表示方式1&#xff0c;单向关联2&#xff0c;双向关联3&#xff0c;自关联聚合关系组合关系依赖关系继承关系实现关系 软件…

Pytorch 张量运算函数(补充)

mean() mean()函数是进行张量均值计算的函数,常用参数可以设置参数dim来进行对应维度的均值计算 以下是使用一个二维张量进行演示的例子 import numpy as np import torch device torch.device(mps if torch.backends.mps.is_available() else cpu) print(device ) data1 …

C++ | Leetcode C++题解之第367题有效的完全平方数

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPerfectSquare(int num) {double x0 num;while (true) {double x1 (x0 num / x0) / 2;if (x0 - x1 < 1e-6) {break;}x0 x1;}int x (int) x0;return x * x num;} };

linux系统,ubuntu安装英伟达NVIDIA4090显卡驱动

文章目录 前言下载英伟达NVIDIA官方驱动安装NVIDIA驱动远程安装关闭交互界面设置权限&#xff08;自己确认版本号5&#xff09;安装&#xff08;自己确认版本号5&#xff09;打开交互界面&#xff0c;并重启系统验证是否安装成功 异常处理问题1问题2问题3&#xff08;可能没解决…

Linux 支持程序在运行时动态加载和卸载共享库,动态链接库

动态链接库 Linux支持动态链接库&#xff08;共享库&#xff09;的概念&#xff0c;允许程序在运行时动态加载和卸载共享库。这有助于减小可执行文件的大小&#xff0c;共享代码&#xff0c;提高代码的可重用性。 #include <dlfcn.h> #include <iostream>int mai…

python小游戏——躲避球(可当课设)

游戏简介&#xff1a; 没有美术&#xff0c;画面简洁&#xff08;懒得做&#xff09;。玩家控制小球躲避敌人&#xff08;上下左右&#xff0c;闪避&#xff09;&#xff0c;敌人体积越大速度越慢&#xff0c;随机生成道具球&#xff08;目前只有生命球&#xff09;&#xff0…

day_49

42. 接雨水 class Solution:def trap(self, height: List[int]) -> int:stack []res 0for i in range(len(height)):while(stack and height[i] > height[stack[-1]]):mid stack.pop()if stack:h min(height[i], height[stack[-1]]) - height[mid]w i - stack[-1] …

​14:00面试,14:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Redis内存淘汰

Redis内存淘汰 Redis可以存储多少数据 maxmemory配置&#xff0c;默认是注释掉的。 #maxmemory <bytes>我们可以主动配置maxmemory&#xff0c;maxmemory支持各种单位&#xff0c;默认是字节 maxmemory 1024 maxmemory 1024KB maxmemory 1024MB maxmemory 1024GB当Re…

跟着GPT学习 Kubernetes ,简称 K8s -- Kind(三)

在 Mac M1 上使用 Kind&#xff08;Kubernetes in Docker&#xff09;学习 Kubernetes 是一个非常合适的选择&#xff0c;因为 Kind 可以在本地轻松地创建一个 Kubernetes 集群&#xff0c;适合进行开发、测试和学习。让我们一步一步地从头开始&#xff0c;设置你的环境并逐步学…

shallowReactive 与 shallowRef

除了之前的 ref与reactive 之外&#xff0c;Vue3 还准备了另外两个API&#xff0c;也是用来对响应式数据做处理&#xff0c;那就是 shallowReactive 与 shallowRef shallowReactive 文档解释&#xff1a;reactive() 的浅层作用形式&#xff0c;只能定义对象类型的数据。和 r…

Spring Boot整合Sentry

Spring Boot整合Sentry Sentry搭建Sentry中新建项目集成SpringBoot1. 添加依赖2. 配置Sentry4. 日志集成&#xff08;可选&#xff09;5. 测试Sentry集成6. 配置实时告警配置Alert Settings配置警报规则 发送消息服务代码参照文档 Sentry 是一个日志平台&#xff0c;分为客户端…

AI 未来两年:史无前例的变革与挑战

2024 年 8 月 20 日&#xff0c;正站在科技变革的风暴中心&#xff0c;见证着人工智能&#xff08;AI&#xff09;以惊人的速度重塑着世界。谷歌前 CEO Eric Schmidt 对 AI 未来两年的预测&#xff0c;引起了广泛关注&#xff0c;如今 YC 的 CEO Garry Tan 也高度赞同这些观点&…

CMakeLists.txt模板

#设置编译该CMakeLists.txt文件所需要的最低cmake版本 CMAKE_MINIMUM_REQUIRED(VERSION 最低版本号)# 该项目名称 PROJECT(项目名称)SET(CMAKE_CXX_STANDARD 11)SET(CMAKE_C_STANDARD 11)# 此行可以理解为将路径下所有的文件装载到自定义集合filelist中 FILE(GLOB filelist &q…