我习惯使用word来发布博客文章,可是我发现了一个问题,这个问题就是当word中打了一段代码之后,代码之后所有的部分都变了颜色,鼠标移上去还有超链接的效果,尽管并没有链接到什么。
于是我这次的笔记里没有成段的代码,反正现在看的是JS的数据类型与变量,JS虽然有些特殊,但数据类型和变量终究是些换汤不换药的东西,也没什么代码要敲。
红皮书上说最常用的是数值类型,字符类型和布尔类型。然后就进行了详尽的讲解。
2.1.1数值数据
数值数据有整数和分数两种形式,分数也被称为浮点数。
尽管在使用时,可以把整数和浮点数当作不同的类型那个,但实际上,JS把他们都视为浮点类型(可怜的整型啊……)。JS很自然地隐藏了其间转换的具体细节,所以通常情况下不用考虑这个问题。有一个例外的情况是,当需要将一个浮点数转换为一个整数时,需要对浮点数进行四舍五入,才能将它转换为整数。
2.1.2文本数据
我们通常将包含一个或多个字符的文本称为字符串,JS中,字符串是一段("")中的文本。字符串也可以用单引号括起来。
JS中包含许多不可以直接输入的特殊字符,他们是用转义字符系列来表示的。一个转义字符系列是用反斜线(\)加上某个字符构成的系列。
看到这里我想去看看网易微专业的视频了,我记得有章好像专门讲这个的。嗯……没错,我还报了网易的前端开发工程师微专业。只是我自己还是不大喜欢看录播视频来学习罢了,所以还是以看文档为主。
然而我又错了……网易前端微专业并没有讲解JS的转义字符,我记得的那个其实是HTML的实体字符,两个不一样。尽管都是用一些奇奇怪怪的序列来表示符号。就红宝书上写的来看,JS的转义字符根据字符集的不同而不同,比如Latin-1的转义字符系列和Unicode的转义字符系列是不同的,然而有些常用的转义字符,是通用的。比如:
\b退格
\ f换页
\n换行
\r 回车
\t 制表符
\' 单引号
\" 双引号
\\ 反斜线
我瞬间又疑惑了,换行字符和回车字符的区别是啥?
现在得到的解答是这样的:回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed
2.1.3
布尔数据……好像没什么笔记要做的,只知道JS中直接使用ture和false。
2.2变量——保存在内存中的数据
在JS代码中,变量名是大小写敏感的。
另外,某些特定的单词或字符不能做为变量名。这些特定的单词就是JS中的保留字,保留字是JS保留给自己使用的。JS的变量名中可以使用数字但数字不能作为变量名的开头。
2.2.1
在使用一个变量之前,应该用关键字var对变量进行声明,在对变量进行声明之后,JS将告诉计算机保留相应的内存空间来存储该变量的数据。分号用于表示一个JS语句的结束。
一旦声明了变量之后,就可以使用变量来保存任何类型的数据,许多强类型语言再声明变量时,不仅要求声明变量名,还要求同时声明该变量的类型。然而JS是一种弱类型语言,它对变量所能保存数据的类型并没有严格的限制。(哇咔咔咔咔,我看到这里真是太高兴了,我就一直不理解那些强类型语言干嘛要声明类型呢,感觉也没什么用啊。)
我们可以把变量看做一个盒子,盒子用来存放物品,那如何在变量中存储内容呢?
我们使用"="号给变量存储内容,看下面的语句:
var mynum = 5 ; //声明变量mynum并赋值。
这个语句怎么读呢? 给变量mynum赋值,值为5。我们也可以这样写:
var mynum; //声明变量mynum
mynum = 5 ; //给变量mynum赋值
注:这里 "="号的作用是给变量赋值,不是等于号。
盒子可以装衣服、玩具、水果...等。其实,变量是无所不能的容器,你可以把任何东西存储在变量里,如数值、字符串、布尔值等,例如:
var num1 = 123; // 123是数值
var num2 = "一二三"; //"一二三"是字符串
var num3=true; //布尔值true(真),false(假)
其中,num1变量存储的内容是数值;num2变量存储的内容是字符串,字符串需要用一对引号""括起来,num3变量存储的内容是布尔值(true、false)。
——引用自慕课网
为变量赋新值后,变量原来的值就永远丢失了。在JS中,有一个被称为垃圾回收的进程将自动地释放那些不再被使用的内存。(话说语言和语言之间的这方面的区别到底是怎么做到的?至今不能理解啊)当JS检测到某个变量不再被使用,或者引用了某个对象的变量被赋予了一个新值时,它将自动运行垃圾会是进程来释放这些变量所占用的内存。
2.2.2用其他变量的至为变量赋值
这看标题就知道内容了,也没什么笔记好做的。