JavaScript 基础教程JavaScript 简介JavaScript 用法JavaScript 输出JavaScript 语法JavaScript 语句JavaScript 注释JavaScript 变量JavaScript 数据类型JavaScript 对象JavaScript 函数JavaScript 作用域JavaScript 事件JavaScript 字符串JavaScript 运算符JavaScript 比较和逻辑运算符JavaScript if...else 语句JavaScript switch 语句JavaScript for 循环JavaScript while 循环JavaScript break 和 continue 语句JavaScript typeof, null, undefinedJavaScript 类型转换JavaScript 正则表达式JavaScript 错误throw try catchJavaScript 调试JavaScript 变量提升JavaScript 严格模式 (use strict)JavaScript 使用误区JavaScript 表单JavaScript 表单验证JavaScript 验证 APIJavaScript 保留关键字JavaScript JSONjavascript :void(0) 含义JavaScript 代码规范JavaScript 函数定义JavaScript 函数参数JavaScript 函数调用JavaScript 闭包JavaScript HTML DOMJavaScript DOM- 改变 HTMLJavaScript DOM - 改变 CSSJavaScript HTML DOM 事件JavaScript DOM EventListenerJavaScript DOM 元素(节点)JavaScript 对象类型JavaScript Number 对象JavaScript 字符串(String)对象JavaScript Date 对象JavaScript Array 对象JavaScript Boolean 对象JavaScript Math 对象JavaScript RegExp 对象JavaScript window 对象JavaScript window.screen 对象JavaScript window.location 对象JavaScript window.history 对象JavaScript window.navigator 对象JavaScript 弹窗JavaScript 计时事件JavaScript CookieJS中的if和switch该如何选择?JS优化多分支结构JS中的while和for循环该如何选择?JS优化循环结构JS输出杨辉三角JS定义字符串(3种方式)JS获取字符串长度JS字符串拼接/连接(3种方式)JS字符串查找(6种方法)JS截取字符串JS字符串替换replace()JS字符串大写小写转换JS字符串比较大小JS字符串和数组之间的转换JS给字符串添加HTML标签JS去除字符串前后空格JS Unicode编码和解码JS Base64编码和解码JS在接收表单数据时过滤特殊字符JS自定义编码和解码方案

JS定义字符串(3种方式)

在 JavaScript 中,定义字符串有以下 3 种方法。


字符串直接量

使用双引号或单引号包含任意长度的文本。

示例1

任何被引号包含的文本都被称为字符串型数据

var s = "true";  //把布尔值转换为字符串
var s = "123";  //把数值转换为字符串
var s = "[1,2,3]";  //把数组转换为字符串
var s = "{x : 1; y : 2}";  //把对象转换为字符串
var s = "console.log('Hello,World')";  //把可执行表达式转换为字符串

示例2

单引号和双引号可以配合使用,定义特殊形式的字符串。

var s = 'console.log("Hello,World")';

单引号可以包含双引号,或者双引号包含单引号。但是,不能够在单引号中包含单引号,或者双引号中包含双引号。

示例3

由于一些字符包含多重语义,在字符串中需要转义表示,避免产生歧义。转义字符的基本方法:在字符前面加反斜杠。

var s = "\"";  //有效的引号字符

示例4

对于字符串化脚本,可以调用全局方法 eval() 执行字符串代码

var s = "console.log('Hello,World')";  //表达式字符串
eval(s);  //执行表达式字符串


构造字符串

使用 String() 类型函数可以构造字符串,该函数可以接收一个参数,并把它作为值来初始化字符串。

示例5

下面使用 new 运算符调用 String() 构造函数创建一个字符串型对象。

var s = new String();  //创建一个空字符串对象,并赋值给变量s
var s = new String("我是构造字符串");  //创建字符串对象,初始化之后赋值给变量s

通过 String 构造函数,构造的字符串与字符串直接量的类型是不同的。前者为引用型对象,后者为值类型字符串

示例6

下面代码比较了构造字符串和字符串直接量的数据类型的不同。

var s1 = new String(1);  //构造字符串
var s2 = "1";  //定义字符串直接量
console.log(typeof s1);  //返回object,说明是引用型对象
console.log(typeof s2);  //返回string,说明是值类型字符串

示例7

String() 也可以作为普通函数使用,把参数转换为字符串类型的值返回。

var s = String(123456);  //包装字符串
console.log(s);  //返回字符串“123465”
console.log(typeof s);  //返回string,说明是简单的值

示例8

String() 允许传入多个参数,但是仅处理第一个参数,并把它转换为字符串返回。

var s = String(1,2,3,4,5,6);  //带有多个参数
console.log(s);  //返回字符串“1”
console.log(typeof s);  //返回string,数值被转换为字符串

但是,所有参数表达式都会被 JavaScript 计算。

示例9

下面变量 n 在构造函数内经过多次计算之后,最后值递增为 5。

var n = 1;  //初始化变量
var s = new String(++n; ++n; ++n; ++n);  //字符串构造处理
console.log(s);  //返回2
console.log(n);  //返回5
console.log(typeof s);  //返回object,说明是引用型对象
console.log(typeof n);  //返回number,说明是数值类型


使用字符编码

使用 fromCharCode() 方法可以把字符编码转换为字符串。该方法可以包含多个整数参数,每个参数代表字符的 Unicode 编码,返回值为字符编码的字符串表示。

示例10

下面代码演示了如何把一组字符串编码转换为字符串。

var a = [35835,32773,24744,22909], b = [];  //声明一个字符编码的数组
for (var i in a) {  //遍历数组
    b.push(String.fromCharCode(a[i]));  //把每个字符编码都转换为字符串存入数组
}
console.log(b.join(""));  //返回字符串“C语言中文网”

可以把所有字符串按顺序传给 fromCharCode()。

var b = String.fromCharCode(35835,32773,24744,22909);  //传递多个参数

也可以使用 apply() 方法动态调用 fromCharCode() 方法。

var a = [35835,32773,24744,22909], b = [];
var b = String.fromCharCode.apply(null,a);  //动态调用fromCharCode()方法,并传递数组
console.log(b);  //返回字符串“C语言中文网”

fromCharCode() 方法是 String 类型的静态方法,不能通过字符串来调用。与 fromCharCode() 方法相反,charCodeAt() 方法可以把字符串转换为 Unicode 编码。  

链接: https://www.fly63.com/course/7_534