数据类型之字符串篇

30次阅读

共计 1510 个字符,预计需要花费 4 分钟才能阅读完成。

公布上期答案:小驼峰我们经常用在变量、函数名属性名这样的标识符身上。
而大驼峰的命名方式,我们更多用在 class(类)上。
这里需要注意的是:“不是一定要这样操作,而是一种默认的约定。
遵从这样的方式命名,不容易一眼被看出来刚学习 js 哦~。”
今天我们要说的就是数据类型,新接触的小伙伴对这个可能就觉得比较迷糊了,怎么数据还有类型??
当然~ 上一期我们介绍了变量,利用变量我们可以大量减少重复的代码,不知道大家有没有注意这个被存储的值,可是很多变的~
例如:
var a = ‘miaov’;
var b = 20181217;
var c = true;

等等等 … 我们会发现一会英文,一会数字。但是有的加引号,有的就不加??
这到底因为什么呢?
这就是我们今天要介绍的大主题:数据类型,接下来~ 就有请这个大家庭成员一位一位登场吧~
数据类型大分类
我们把数据类型分为两个大类:
• 基本类型(简单类型)• 复杂类型(引用类型)
我们来看看基本类型有多基本,复杂类型有多复杂~ 有请第一位:
基本类型 – String
String 类型是由 0 或者多个字符组成的,就像我们吃烧烤,给所有食材串起来~ 所以我们把 String 叫做字符串。

那我们怎么分辨什么是字符串呢?大家注意看图,串的前后都露出来签。
我们的字符串的前后也有一个标志,就是——引号,字符串由一对双引号(””)或者单引号(”)包裹,在这里双引号和单引号没有差别~ 所以,以下两种都是字符串的表现方式:
var a = “miaov”;
var b = ‘miaov’;

这里对于学习后端的同学可能会不太习惯~ 因为在后端中,单引号和双引号是不一样的,单引号只能是字符。
但是在 ECMAScript 中是没有差别的。需要额外注意的是符号必须是配对的,不能出现如下配对:
var str = ‘miaov”; // 左边单引号 右边双引号,不配对

为什么要强调这个问题呢?因为有时候我们想要存储的字符串可能本身自己就带有引号,像下面这样:
// 这是 ”miaov” 的红宝书系列 <- 这是我想存的内容

var str = “ 这是 ”miaov” 的红宝书系列 ”; // 错误的方式

var str = ‘ 这是 ”miaov” 的红宝书系列 ’; // 这才是正确的

如果又有双引号又有单引号怎么办?
同学,你思维很活跃哦~
这时候我们需要用到一个东西 —— 转义。转义是一个 我们来看一下案例:

以上为 str 中存储值打印的截图
字符串的特点
ECMAScript 中的字符串是不可变的,也就是说你只要创建出来,它就不能被改变了,但是很多小伙伴觉得,不会啊:
var lang = “Java”;
lang = lang + “Script”;

这不就改过来了么??(关于 + 号,我们后面再说,这里大家只要知道,它就是拼接的功能)
事实上在这里,当我们想要改变某个变量保存的字符串,首先,它是销毁了原来的字符串的!!然后再用另一个包含新值的字符串填充该变量的。
那么上面这个案例它具体是怎么个步骤呢?
来看一下

第一步:创建一个可以容纳 10 个字符的新字符串
第二步:在这个字符串中填充 ”Java” 和 ”Script”
第三步:销毁原来的字符串 ”Java” 和 ”Script”,因为已经用不到了,我们需要的是第一步时候创建的新字符串。

这个过程是发生在后台的,我们看不到,在某些旧版本的浏览器(指的是:IE6、低于 1.0 的 Firefox 等),因为这种频繁的创建和销毁,导致拼接字符串的性能很差,所以很多时候,我们会选择使用 join 方法。
不过在现代浏览器中对字符串的“+”运算做了优化,已经解决了这个问题,就可以放心使用哦~
问题来了:那么 ”+” 的拼接方式还是最慢的么?知道的同学赶紧留言哦~ 下期我们揭晓答案!
下期预告
下期带来基本类型 – Number,不是数字的数字类型等你来看~

正文完
 0