Javascript中创建字符串的方法主要有三种:
这三者方式的区别是: 通过String直接创建的字符串和字符串表面量为基本数据类型,属于JavaScript中的直接量(包含数字,以及数组、对象和正则表达式、数字和布尔值的直接量格式)。 通过 New String来实例化的是一个String对象, 所以我们可以调用String对象的方法。
例如:
<script>
let s1 = "javascript";
let s2 = new String("javascript");
let s3 = String("javascript");
console.info(s1);
console.info(typeof (s1));
console.info(s2);
console.info(s2.toString()); //对象类型可以调用成员方法。等同于valueOf();
console.info(typeof(s2));
console.info(s3);
console.info(typeof(s3));
console.info(s1==s2);
console.info(s2==s3);
</script>
运行结果:

字符串中输出一些特殊字符,用转义字符\来标识。转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\。
还可以用\u####表示一个Unicode字符。
ES6新增了一种模板字符串,它会自动替换字符串中的变量,更方便地实现字符串的拼接效果。 例如:
<script>
var s1 = "I'm OK! ";
var s2 = 'I\'m OK!';
var s3 = "使用转义字符\\";
console.log(s1);
console.log(s2);
console.log(s3);
console.log('\u4e2d\u6587');
var name = '张三';
var age = 18;
var message = `你好, ${name}, 你今年${age}岁了!`;
console.log(message);
</script>
运行结果:
I'm OK!
I'm OK!
使用转义字符\
中文
你好, 张三, 你今年18岁了!
String类有很多内置函数。其中常用API如下:
| 函数名字 | 说明 |
|---|---|
| toLowerCase() | 所有字符都转成小写 |
| toUpperCase() | 所有的字符都转成大写 |
| charAt(index) | 获取指定位置的字符 |
| join()) | 方便实现字符串的拼接 |
| charCodeAt(index) | 获取指定位置字符的unicode编码 |
| indexOf("关键字") | 查找关键字第一次出现的下标 |
| lastIndexOf("关键字") | 查找关键字最后一次出现的下标 |
| slice(start,end) | 截取字字符串,支持负数,也就是倒数 |
| subString(start.end) | 截取字字符串,不支持负数,也就是不支持倒数 |
| subStr(start,count) | 从指定字符起,截取几个字符 |
| split("分割符",[,count]); | 按规律分割字符串 |
| toString() | 返回字符串 |
| trim() | 去除两侧的空格 |
实例:
<script>
let s1 = "Hello,Javascript! Javascript is a script language.";
let s2 = "apple,watermelon,grape,banana";
let s3 = new String('Hello,javascript');
let s4 = " Hello,Javascript ";
let city = ["北京","上海","广州"];
console.info(s1.toLowerCase());
console.info(s1.toUpperCase());
console.info(s1.charAt(6));
console.info(city.join("-"));
console.info(s1.charCodeAt(0));
console.info(s1.indexOf('script'));
console.info(s1.lastIndexOf('script'));
console.info(s1.slice(0,-15)); //可以从后往前截取。
console.info(s1.substr(0,5));
console.info(s1.substring(0,5));
console.info(s2.split(','));
console.info(s3.toString());
console.info(s3.valueOf());
console.info(s4.trim());
</script>

JavaScript 中的模板字符串是一种方便的字符串语法,允许你在字符串中嵌入表达式和变量。模板字符串使用反引号 `` 作为字符串的定界符分隔的字面量。
实例:使用模板字符串拼接当前的中文日期格式字符串(yyyy-MM-dd)。
let date = new Date(); // 创建一个表示当前时间的 Date 对象
let year = date.getFullYear(); // 获取年份(四位数)
let month = (date.getMonth() + 1).toString().padStart(2, '0'); // 获取月份并转换为两位数格式
let day = date.getDate().toString().padStart(2, '0'); // 获取天数并转换为两位数格式
// 将年、月、日连接起来形成完整的日期字符串
let dateString = `${year}-${month}-${day}`;
console.log(dateString);