在计算机科学中, data
(数据)大于一切,因为它对于计算机的意义重大。JavaScript
提供七种不同的data types
(数据类型),它们是:
- undefined(未定义),
- null(空),
- boolean(布尔型),
- string(字符串),
- symbol(符号),
- number(数字),
- object(对象)。
一、理解 JavaScript
未定义变量
当 JavaScript
中的变量被声明的时候,它们的初始值为 undefined
。
如果对一个值为 undefined
的变量进行运算操作的时候,那么结果将会是 NaN
,NaN
的意思是 "Not a Number"。
如果将一个没有 定义 的变量跟字符串进行连接的时候,你将获得一个字符串"undefined"。
举例:
var a;
var b;
var c;
a = a + 1;
b = b + 5;
c = c + " String!";
运行结果:
a = NaN, b = NaN, c = 'undefined String!'
二、字符串
字符串是用 单引号或双引号包裹起来的一连串的零个或多个字符。
2.1、声明字符串变量
var name = "my name";
2.2、保留字符串中的引号
需要转义:使用反斜杠(\
) 来转义引号。
var sampleStr = "Alan said,\"Peter is learning JS\".";
输出:
Alan said,"Peter is learning JS".
当字符串中需要转义的字符串比较多时,容易混乱,可使用 单引号 :
var sampleStr = 'Alan said,"Peter is learning JS".';
输出:
Alan said,"Peter is learning JS".
输出:
Alan said,"Peter is learning JS".
2.3、转义序列
引号不是字符串中唯一的可以被转义字符。下面是常见的转义序列列表:
Code | Output |
---|---|
' | 单引号 |
" | 双引号 |
\ | 反斜杠符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\b | 退格符 |
\f | 换页符 |
注意,如果你想要显示一个反斜杠就必须要转义它。
2.4、字符串连接
2.4.1、使用 +
当 +
运算符与 字符串 一起使用的时候,它被称作 连接 运算符。
你可以通过和其他字符串连接 来创建一个新的字符串。
var ourStr = "I come first. " + "You come second";
2.4.2、使用 +=
var ourStr = "I come first. ";
ourStr += "I come second.";
2.5、字符串长度
你可以通过在字符串变量或字符串后面写上 .length
来获得变量中string (字符串)值的长度。
"Alan Peter".length; // 10
2.6、使用中括号获取字符串中的第n个字符
括号符号是一种在字符串中的特定索引处获取字符的方法。
() :小括号。
[] :中括号
{}:大括号
JavaScript中只有字符串类型,没有字符类型。
如果要获取字符串中的某个字符,我们需要通过 [索引]
来获得对应的字符。
// Setup
var firstLetterOfLastName = "";
var lastName = "Lovelace";
// Only change code below this line
firstLetterOfLastName = lastName[0];
2.7、不可变性
在 JavaScript
中,字符串 的值是 不可变的,这意味着一旦字符串被创建就不能被改变。
例如,下面的代码:
var myStr = "Bob";
myStr[0] = "J";
是不会把变量 myStr 的值改变成 "Job" 的,因为变量 myStr 是不可变的。
注意,这 并不 意味着 myStr
永远不能被改变,只是字符串字面量string literal
的各个字符不能被改变。
改变 myStr 中的唯一方法是重新给它赋一个值,就像这样:
var myStr = "Bob";
myStr = "Job";
三、布尔类型
Boolean 值绝不会写作被引号包裹起来的形式。字符串 的 "true" 和 "false" 不是 布尔值,在 JavaScript 中也没有特殊含义。(布尔值不是字符串)
正确的写法:
function welcomeToBooleans() {
return false; // 注意没有双引号
}