【JavaScript】String 构造函数和静态方法
以下内容为学习记录,可以参考 MDN 原文。
环境
- node v12.18.1
- npm 6.14.5
- vscode 1.46
- Microsoft Edge 83
概念
String 全局对象是一个用于字符串或一个字符序列的构造函数。
使用 “\” 可以转义字符。
const string1 = "A string primitive";
const string2 = 'Also a string primitive';
const string3 = `Yet another string primitive`; // 模板字符串
const string4 = new String("A String object");
从 ECMAScript 2015 开始,字符串字面量也可以称为模板字面量:
`hello world` `hello! world!` `hello ${who}` escape `<a>${who}</a>`
构造函数
String() 创建一个新的 String 对象。 当作为函数而不是构造函数调用时,它执行类型转换,这通常更有用。
typeof String('Hello world'); // string
typeof new String('Hello world'); // object
获取字符
有两种方式可以获取到字符串中的字符。
return 'cat'.charAt(1) // returns "a"
return 'cat'[1] // returns "a"
比较字符串
let a = 'a'
let b = 'b'
if (a < b) { // true
console.log(a + ' is less than ' + b)
} else if (a > b) {
console.log(a + ' is greater than ' + b)
} else {
console.log(a + ' and ' + b + ' are equal.')
}
String 基础类型和对象
let s_prim = 'foo'
let s_obj = new String(s_prim)
console.log(typeof s_prim) // Logs "string"
console.log(typeof s_obj) // Logs "object"
长字符串
有两种方式定义长字符串。
let longString = "This is a very long string which needs " +
"to wrap across multiple lines because " +
"otherwise my code is unreadable."
let longString = "This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable."
静态方法
fromCharCode
String.fromCharCode() 方法返回由指定的 UTF-16 代码单元序列创建的字符串。
console.log(String.fromCharCode(189, 43, 190, 61));
// expected output: "½+¾="
fromCodePoint
String.fromCodePoint() 静态方法返回使用指定的代码点序列创建的字符串。
console.log(String.fromCodePoint(9731, 9733, 9842, 0x2F804));
// expected output: "☃★♲你"
raw
String.raw() 是一个模板字符串的标签函数,是用来获取一个模板字符串的原始字符串的,比如说,占位符(例如 ${foo})会被处理为它所代表的其他字符串,而转义字符(例如 \n)不会。
// Create a variable that uses a Windows
// path without escaping the backslashes:
const filePath = String.raw`C:\Development\profile\aboutme.html`;
console.log(`The file was uploaded from: ${filePath}`);
// expected output: "The file was uploaded from: C:\Development\profile\aboutme.html"
实例属性
除了 prototype,字符串有一个实例属性 length,它代表了字符串的长度。
var x = "Mozilla";
var empty = "";
console.log("Mozilla is " + x.length + " code units long");
/* "Mozilla is 7 code units long" */
console.log("The empty string is has a length of " + empty.length);
/* "The empty string is has a length of 0" */
分类:
JavaWeb
, JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!