Skip to content
Netflix - 每月低至 25 元

第8章 字符串

创建字符串

使用字面量创建字符串

js
let str1 = 'hello!';

使用 String 构造函数创建字符串

js
let str2 = new String('你好');

转义字符

js
let str3 = '他说:\'我们出去玩吧!\''; // 通过反斜杠转义
let str4 = '\u1010'; // တ 转义Unicode用 \u开头

模板字符串

概念

  • 模板字符串是增强版的字符串,用反引号(`)标识
  • 模板字符串可以保留格式
  • 模板字符串可以插入变量

保留格式

js
//1.模板字符串可保留格式
let str = `Lorem ipsum dolor sit, 
amet consectetur adipisicing elit.
    Quo vel minima quisquam, 
        doloremque sed architecto, 
recusandae odit laboriosam!`;

console.log(str);

/*  Lorem ipsum dolor sit, 
    amet consectetur adipisicing elit.
        Quo vel minima quisquam,
            doloremque sed architecto,
    recusandae odit laboriosam!     */

插入变量

  • 使用 ${} 即可插入变量
js
let uname = '只抄';
let str = `Hello,${uname}`;
console.log(str); // Hello,只抄

高级用法

  • 模板字符串可以作为参数传入函数
  • 函数的第一个参数为模板字符串中的字符组成的数组(以变量占位符为分隔)
  • 后面的参数为每一个变量
js
function greeting(strings, gender, age) {
  console.log(gender); // M
  console.log(age); // 18
  let genderStr = gender === 'M' ? '先生' : '女士';
  return `${strings[0]}${genderStr}`;
}
let age = 18;
let gender = 'M';
let result = greeting`你好,只抄${gender}${age}`;

字符串遍历

for 循环

js
let str = 'hello world';
for (let i = 0; i < str.length; i++) {
  console.log(str.charAt(i)); // charAt(index) 返回指定位置的字符
  console.log(str[i]); // str[index] H5新增
}

for...of 遍历

  • for...of 遍历会得到字符串的值 (value)
js
let str = 'hello world';
for (let i of str) {
  console.log(i);
}

返回字符位置

  • str.indexOf() 方法可以返回字符的索引
js
let str = '改革春风吹满地,春天来了';
str.indexOf('春'); // 2
str.indexOf('春', 3); // 从索引3开始往后查找 值为 8

替换字符

  • str.replace(searchValue, replaceValue) 方法可以替换字符
js
let str = 'andy';
let newStr = str.replace('a', 'b'); // newStr = bndy

字符转换为数组

  • str.split('分隔符') 可以将字符串按照分隔符转换为数组
js
let str = 'red, pink, blue';
let arr = str.split(','); // arr = ['red', 'pink', 'blue']

字符串裁切

slice

  • 接受两个参数,前闭后开
  • 可以接受负值,最后一个字符为 -1
  • 从右往左裁切则为空字符串
js
let str = 'This is a long string...';
console.log(str.slice(0, 4)); // This
console.log(str.slice(-2, -1)); // .
console.log(str.slice(4, 1)); // '' 空字符串

substring

  • 与 slice 类似,接受两个参数,前闭后开
  • 与 slice 不同的是不接受负数
  • 从右往左裁切则会自动调换两个参数的位置
js
let str = 'This is a long string...';
console.log(str.substring(0, 4)); // This
console.log(str.substring(-2, -1)); // '' 空字符串
console.log(str.substring(4, 1)); // his 将两个参数调换

substr

  • 接受两个参数,第一个参数为起始位置,第二个参数为截取长度
js
let str = 'This is a long string...';
console.log(str.substr(2, 2)); // is

字符串拼接

  • 方式一:用 + 拼接
  • 方式二:使用 str.concat(str1, str2, ...) 拼接
js
let str1 = 'hello';
let str2 = ' world';
let str3 = str1 + str2; // hello world
let str4 = str1.concat(str2); // hello world

大小写转换

  • str.toUpperCase() 转换成大写
  • str.toLowerCaser() 转换为小写
js
let str = 'Hello';
let upperStr = str.toUpperCase(); // HELLO
let lowerStr = str.toLowerCase(); // hello

去除空格

  • trim() 方法可以去除首尾的空格,不可以去除中间的空格
js
let str = '       hello     world           ';
console.log(str.trim()); // hello     world
关注微信公众号RackNerd - 美国 163 直连线路
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0

预览:

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3