JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有七种。
数值
、字符串
、布尔值
这三种是原始类型。对象
则称为合成类型。undefined
和null
,为两个特殊值。ES6 添加了Symbol
类型的值。
一.概念
1.单引号和双引号
-
字符串就是零个或多个排在一起的字符
-
字符串使用单引号或双引号都可以,单引号中可以包含双引号,双引号中可以包含单引号
'abc' "abc" 'key = "value"' "I'm Joey"
-
单引号中引用单引号或者双引号中引用双引号需要
\
转义'Did she say \'Hello\'?' // "Did she say 'Hello'?" "Did she say \"Hello\"?" // "Did she say "Hello"?"
-
将长字符串写成多行
//此种写法会报错,不可直接回车使用 'a b c' // SyntaxError: Unexpected token ILLEGAL
//1. 可在字符的结尾处使用\来换行,\后不可添加例如空格的字符 var longString = 'Long \ long \ long \ string'; longString // "Long long long string" //2. 可以使用+拼接多个字符 var longString = 'Long ' + 'long ' + 'long ' + 'string';
2.转义字符
- 转义字符,在字符串中有特殊含义的字符组合,例如
1\n2
输出的时候1换行2
\0
:null(\u0000)
\b
:后退键(\u0008)
\f
:换页符(\u000C)
\n
:换行符(\u000A)
\r
:回车键(\u000D)
\t
:制表符(\u0009)
\v
:垂直制表符(\u000B)
\'
:单引号(\u0027)
\"
:双引号(\u0022)
\\
:反斜杠(\u005C)
3.字符串与数组
-
字符串可以被视为字符数组,① 可以使用角标的方式获取,单个字符,角标从0开始,但是无法通过角标修改某一点字符的内容。②若角标越界,或者非数字,则返回
undefined
//1.获取字符 var s = 'hello'; s[0] // "h" s[1] // "e" s[4] // "o" // 直接对字符串使用方括号运算符 'hello'[1] // "e" //2.返回undefined 'abc'[3] // undefined 'abc'[-1] // undefined 'abc'['x'] // undefined
4.length 属性
- length属性返回字符串的长度,该属性也是无法改变的
二.字符集和Base64 转码
1.字符集
- avaScript 使用 Unicode 字符集。JavaScript 引擎内部,所有字符都用 Unicode 表示
- 每个字符在 JavaScript 内部都是以16位(即2个字节)的 UTF-16 格式储存。也就是说,JavaScript 的单位字符长度固定为16位长度,即2个字节
2. Base64 转码
- 使用Base64 进行ASCII 码的编码,非 ASCII 码的字符会报错;JavaScript提供2个Base64编码的方法
btoa()
:任意值转为 Base64 编码
atob()
:Base64 编码转为原来的值