JavaScript高级程序设计 第4版----String
JavaScript高级程序设计 第4版----String
文章目录
- JavaScript高级程序设计 第4版----String
- 1、JavaScript 字符
- 2、字符串操作方法
- 1、concat (不改变原数据)
- 2、slice([ )) N
- 3、substring([)) N
- 4、substr()N
- 3、字符串位置方法
- 1、indexOf()
- 2、lastIndexOf()
- 4、字符串包含方法
- 1、startsWith()
- 2、endsWith()
- 3、includes()
- 5、trim()、trimLeft()、trimRight()方法
- 6、repeat()方法
- 7、padStart()和 padEnd()方法
- 8、字符串迭代与解构
- 1、迭代
- 2、解构([...])
- 9、字符串大小写转换
- 10、字符串模式匹配方法
- 1、match
- 2、search
- 3、replace
- 11、localeCompare()方法
- 12、HTML 方法
let stringObject = new String("hello world");
1、JavaScript 字符
属性:
1、length
let message = "abcde";
console.log(message.length); // 5
2、charAt() :返回索引位置的字符
let message = "abcde";
console.log(message.charAt(2)); // "c"
3、charCodeAt()码元的字符编码
let message = "abcde";
console.log(message.charCodeAt(2)); // 99
// 十进制 99 等于十六进制 63
console.log(99 === 0x63); // true
4、fromCharCode() 根据给定的 UTF-16 码元创建字符串中的字符
console.log(String.fromCharCode(0x61, 0x62, 0x63, 0x64, 0x65)); // "abcde"
console.log(String.fromCharCode(97, 98, 99, 100, 101)); // "abcde"
2、字符串操作方法
1、concat (不改变原数据)
字符串拼接
let stringValue = "hello ";
let result = stringValue.concat("world","!");
console.log(result); // "hello world!"
console.log(stringValue); // "hello"
2、slice([ )) N
3、substring([)) N
4、substr()N
正数
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" //截取7个字符串数量
负数:在给 slice()和 substr()传入负参数时,它们的返回结果相同。
这是因为-3 会被转换为 8(长度加上负参数),实际上调用的是 slice(8)和 substr(8)。
substring()方法返回整个字符串,因为-3 会转换为 0。
当第二个参数为负值时,
slice()方法将第二个参数转换为 7,实际上相当于调用 slice(3, 7),因此返回"lo w"。
而 substring()方法会将第二个参数转换为 0,相当于调用substring(3, 0),等价于 substring(0, 3),这是因为这个方法会将较小的参数作为起点,将较大的参数作为终点。
对 substr()来说,第二个参数会被转换为 0,意味着返回的字符串包含零个字符,因而会返回一个空字符串
let stringValue = "hello world";
console.log(stringValue.slice(-3)); // "rld"
console.log(stringValue.substring(-3)); // "hello world"
console.log(stringValue.substr(-3)); // "rld" console.log(stringValue.slice(3, -4)); // "lo w"
console.log(stringValue.substring(3, -4)); // "hel"
console.log(stringValue.substr(3, -4)); // "" (empty string)
3、字符串位置方法
1、indexOf()
2、lastIndexOf()
查找不对返回-1
let stringValue = "hello world";
// 查找第一个
console.log(stringValue.indexOf("o")); // 4
//查找最后一个
console.log(stringValue.lastIndexOf("o")); // 7
let stringValue = "hello world";
//从第六个开始查找
console.log(stringValue.indexOf("o", 6)); // 7
//它从位置 6 开始反向搜索至字符串开头
console.log(stringValue.lastIndexOf("o", 6)); // 4
4、字符串包含方法
1、startsWith()
2、endsWith()
3、includes()
一个参数:
startsWith()检查开始于索引 0 的匹配项,
endsWith()检查开始于索引最末尾的匹配项,
而 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
2个参数:
startsWith()和 includes()方法接收可选的第二个参数,表示开始搜索的位置。如果传入第二个参数,则意味着这两个方法会从指定位置向着字符串末尾搜索,忽略该位置之前的所有字符。
let message = "foobarbaz";
console.log(message.startsWith("foo")); // true
console.log(message.startsWith("foo", 1)); // false
console.log(message.startsWith("bar", 3)); // true
console.log(message.includes("bar")); // true
console.log(message.includes("bar", 4)); // false
endsWith()方法接收可选的第二个参数,表示应该当作字符串末尾的位置。
如果不提供这个参数,那么默认就是字符串长度。
如果提供这个参数,那么就好像字符串只有那么多字符一样:
let message = "foobarbaz";
console.log(message.endsWith("bar")); // false
console.log(message.endsWith("bar", 6)); // true5
5、trim()、trimLeft()、trimRight()方法
删除前、后所有空格符
let stringValue = " hello world ";
let trimmedStringValue = stringValue.trim();
console.log(stringValue); // " hello world "
console.log(trimmedStringValue); // "hello world"
console.log(stringValue.trimRight()); // "hello world "
console.log(stringValue.trimLeft()); // " hello world"
6、repeat()方法
将字符串复制的次数
let stringValue = "na ";
console.log(stringValue.repeat(16) + "batman");
// na na na na na na na na na na na na na na na na batman
7、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......"
如果提供了多个字符的字符串,则会将其拼接并截断以匹配指定长度。此外,如果长度小于或等于字符串长度,则会返回原始字符串
let stringValue = "foo";
console.log(stringValue.padStart(8, "bar")); // "barbafoo"
console.log(stringValue.padStart(2)); // "foo"
console.log(stringValue.padEnd(8, "bar")); // "foobarba"
console.log(stringValue.padEnd(2)); // "foo"
8、字符串迭代与解构
1、迭代
字符串的原型上暴露了一个@@iterator 方法,表示可以迭代字符串的每个字符。
let message = "abc";
let stringIterator = message[Symbol.iterator]();
console.log(stringIterator.next()); // {value: "a", done: false}
console.log(stringIterator.next()); // {value: "b", done: false}
console.log(stringIterator.next()); // {value: "c", done: false}
console.log(stringIterator.next()); // {value: undefined, done: true}
在 for-of 循环中可以通过这个迭代器按序访问每个字符:
for (const c of "abcde") { console.log(c);
}
// a
// b
// c
// d
// e
2、解构([…])
let message = "abcde";
console.log([...message]); // ["a", "b", "c", "d", "e"]
9、字符串大小写转换
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"
10、字符串模式匹配方法
1、match
RegExp 对象的 exec()方法相同
let text = "cat, bat, sat, fat";
let pattern = /.at/;
// 等价于 pattern.exec(text)
let matches = text.match(pattern);
console.log(matches.index); // 0
console.log(matches[0]); // "cat"
console.log(pattern.lastIndex); // 0
2、search
返回第一个匹配的位置索引,如果没找到则返回-1
let text = "cat, bat, sat, fat";
let pos = text.search(/at/);
console.log(pos); // 1
3、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"
11、localeCompare()方法
比较两个字符串
如果按照字母表顺序,字符串应该排在字符串参数前头,则返回负值。(通常是-1,具体还要看
与实际值相关的实现。)
如果字符串与字符串参数相等,则返回 0。
如果按照字母表顺序,字符串应该排在字符串参数后头,则返回正值。(通常是 1,具体还要看
与实际值相关的实现。)
let stringValue = "yellow";
console.log(stringValue.localeCompare("brick")); // 1
console.log(stringValue.localeCompare("yellow")); // 0
console.log(stringValue.localeCompare("zoo")); // -1
12、HTML 方法
早期浏览器扩展了规范,增加了辅助生成 HTML 标签的方法。
JavaScript高级程序设计 第4版----String相关推荐
- JavaScript高级程序设计[第3版]
JavaScript高级程序设计[第3版] package xyz.huning.toolkit.pdf;import java.io.FileOutputStream; import java.io ...
- JavaScript高级程序设计第四版学习--第二十四章
title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...
- JavaScript高级程序设计第三版.CHM【带实例】
从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...
- javascript高级程序设计 第三版
网盘地址 提取码:vh81 笔记 第二章 2.1script标签 <script>元素属性:async.charset.defer.language.src.type async和defe ...
- 新书-JavaScript高级程序设计:第2版(预订中,估价)
http://www.china-pub.com/196857 JavaScript的应用在广度和深度上日益扩大和加深,前端开发亟待掌握的JavaScript技能也越来越具有挑战性. 这个新版本几乎全 ...
- JavaScript高级程序设计第三版 第3章 基本概念
第3章 基本概念 3.1 语法 3.1.1 区分大小写 3.1.2 标识符 3.1.3 注释 3.1.4 严格模式 3.1.5 语句 3.2 关键字和保留字 3.3 变量 3.4 数据类型 3.4.1 ...
- javascript 高级程序设计(第4版)阅读笔记(三)
第3章,内容很长,所以更得慢,主要讲的是ECMAScript es的语言基础:语法.数据类型.基本操作符.流控制语句.理解函数,ECMAScript 的语法很大程度上借鉴了 C 语言和其他类 C ...
- 阅读JavaScript高级程序设计(第二版)笔记
第一章js简介 JavaScript诞生在1995年,当时负责进行输入型验证. JavaScript是一种专为与网页交互而设计的脚本语言,分为 : 1. ECMAScript核心语言功能. 2.文档对 ...
- JavaScript高级程序设计 第4版 -- 操作符
3.5 操作符 3.5.1一元操作符 前缀版: 变量的值会在语句被求值前改变 后缀版: 递增递减在语句被求值后才改变 let age = 29; let anotherAge = --age + 2; ...
最新文章
- 【 Overview 】ALGORITHMS FOR SOURCE LOCALIZATION
- Visual Studio 11 Beta 带来新的Metro 应用开发体验
- 高性能Cordova App开发学习笔记
- 鸟哥linux群,【鸟哥的linux私房菜-学习笔记】linux的帐号与群组
- Python3学习笔记2:简易Web爬虫
- Des与3Des加密解密
- JeecgBoot与MongoDB集成实战文档
- thinkphp extend.php,【ThinkPHP5.1】如何引用extend的类库
- 心理与行为科学统计_华东师范大学心理学考研备考经验分享
- Dynamics CRM - 不同类型字段在 Plugin 里的赋值方式
- ensp配置access口_eNSP初学者配置以太网2种链路端口:access、trunk
- 64位win8系统加64位sql server 2008,性能提高了好多
- Oracle 递归查询 (start with ...connect by ...prior)
- displayTag获得行号
- cloudcompare:怎么换背景颜色
- 软件工程结课论文 敏捷开发在软件工程中的应用 大学编程作业(TUST 天津科技大学 2022年)
- 数学建模学习2论文排版
- matlab求解f非线性微分方程数值解,非线性﹑微分方程数值求解.PPT
- GoldenGate—日常管理
- 上海电信的iptv穿越dd-wrt
热门文章
- Spreading the Wealth(UVa 11300)
- 使用Arduino制作震动检测器
- echarts + vue2 实现帕累托图
- qlu_新生赛_2018_代码汇总
- I wanna stay with you foreverI wanna stay with you forever I wanna stay with youI lay my love on you
- Linux权限详解.
- can't connect to to MySQL server on 'localhost'(10061)
- 工作量统计系统 java GUI
- 改善顶推施工方法带来的负面影响可以采取哪些措施。
- Linux之旅-第一个内核打印信息