第2份笔记,其实作为接触过其它编程语言的人,再来学习其它语言时,总会发现很多相似的东西,因为笔者是通过阅读
这次要说的是JavaScript中的数据类型与变量。
笔者在学校的时候,最早接触的是强类型语言,对于每一个数据都要明确其数据类型,从而对其进行操作。JavaScript则是一种弱类型语言,它对于如何使用不同类型的数据没有严格的要求。处理数据时,往往不需要像强语言类型那样指定相应的数据类型,JavaScript会自动确定其数据类型。虽然是弱类型语言,但是了解数据类型还是能更好地提高效率并且帮助你检测程序的正确性。
常用数据类型:
a)数值类型
1)整数:可以表示整数,如100,可以为正也可以为负,取值范围为-2^53~2^53。
2)小数:如3.14,同样可以表示正负。
b)文本数据
文本数据可以被""或者''所包裹,这样被包裹的文本将不再被视为代码,而是被看做文本数据。""和''必须成对使用,不可单独使用,并且开始和结尾必须互相对应。
JavaScript同样也有着转义字符序列。
转义字符序列 | 字符含义 |
\b | 退格字符 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符tab |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜线 |
\xNN | NN是一个十六进制数,标识Latin-1字符集中的一个字符 |
c)布尔数据
只有两个值,true和false,标识是与否。
讲完了数据类型,自然要讲到变量。在我看来,程序不过是数据和算法的一种结合。变量就是存储在内存中的数据,与常量不同,它是一种临时数据。
变量名区分大小写。变量名的命名也要遵循一些规则,如:
a)不可以使用javascript的保留字来命名,如var,with。
b)不能夹杂一些特殊符号,如&,%等。
c)变量名不可以使用数字作为开头,如123test。
注意:变量的命名应尽可能的见名知其义,否则将来回头看自己或者他人的代码时,你很可能为此付出沉重的代价。
下面将讲述变量的创建以及赋值。
在使用变量之前,应使用var关键字对变量进行声明,如:
var test;
“;”表示一行语句的结束。
声明完变量后,我们可以使用赋值符号“=”为其赋值(为赋值之前,变量的值为undefined),如:
test = 123;
除了赋值为数值外,变量还可以赋值为字符串,如:
test = “HELLO WORLD!”;
相同变量可以重复赋值,同时变量还可以为其它变量赋值,如:
var a;
var b = 1;
a = b;
这是,a的值等于b的值,也为1。
有了数据之后,我们便可以对这些数据进行操作了,首先要介绍的是简单的数值计算和字符串的简单操作。
基本的数值计算有+,-,*,/,也就是我们常说的四则运算了,因为比较简单,所以下面举一些简单的例子来帮助大家理解:
var a = 2;
var b = 4;
var answer;
anser = a + b; //6
anser = a - b; //-2
anser = a * b;//8
anser = b / a;//2
除了基本的四则运算以为,还有递增(++)递减运算符(--),这两个运算符分别表示+1,-1,同时也可以分别放在变量的前后,下面举几个例子来帮助理解:
var a = 10;
var b = ++a;//11
var a = 10;
var c = a++;//11
var a = 10;
var d = --a;//9
var a = 10;
var e = a--;//9
通过以上例子无法看出运算符放在前后的区别,下面的例子将专门讲述其区别,这也是一些初学者容易弄混的东西。
var a = 10;
var f = ++a + 1; //12
var a = 10;
var g = a++ + 1;//11
那么为什么这次结果会不一样呢?且待我慢慢道来:
第一个var f = ++a + 1的执行顺序是先进行自增运算,即a先+1,等于11,然后再加1,等于12.。
第二个var g = a++ + 1则是先进性a+1的运算,g = 11,然后再进行自增。
这就是其中的区别了。
不同的运算符之间地位并不是平等的,它们的执行顺序之间存在着优先级的关系,如乘除的优先级大于加减,关于这方面的问题,可以去参考网上一些资料,这里就不在细说了。
下面讲一些字符串的基本操作。
var str = "HELLO"+"WROLD";//HELLOWORLD
+运算符除了在数值运算中充当加法的运算符,在字符串的处理中,同样能用到,但这里不再是表示加法,而是表示一种连接符,可以将符号两侧的字符串拼接在一起,同时如果符号两边一边为字符串一边为数字,那么数字便不再是数值,也会被当成字符串与之拼接,如:
var str = “hello”+123;//hello123
同时下面将介绍两个方法,用于数值类型的转换,parseInt(),parseFloat(),这两个方法将会把字符串类型转换成数值类型,parseInt转换为整形,parseFloat转换为浮点型。
下面讲述几个例子来帮助理解:
var a = “123”;
var b = "123abc";
var c = parseInt(a);//123
var d = parseFloat(a);//123.0
var e = parseInt(b);//123,当转换到abc时,发现不是数字,转换结束。
当遇到完全无法转换的字符串时,转换的结果将不再是数值,而是NaN(Not a Number),如:
var a = parseFloat("test");//NaN
NaN是javascript中的一种特殊值,可以使用isNaN()方法来鉴别是否是该数据类型,返回值类型是boolean类型。
下面就是要说下数组这种数据类型了,数组与普通便令类似,可以存储任何类型的数据。但区别是,变量一次只能存储一个数据,但数组却可以存储多个数据。
数组的创建与变量的声明略有不同,除了要声明一个变量名之外,还需使用new关键字和Array()函数来创建,如:
var array = new Array();
当然也有一些简单的创建方式,如:
var array = [];
数组创建好后可以对其进行赋值,可以在刚开始创建是就直接进行赋值,如:
var array = ["1","2","3"];
也可以先声明后赋值,如:
var array = [];
array[0] = "1";
array[1] = "2";
javascript 本质上只支持一维数组,但是我们可以通过在一个数组的内部创建一个数组来实现多维数组的效果,如:
var array = [];
array[0] = [];
array[0][0] = "1";
array[0][1] = "2";
array[1] = [];
array[1][0] = "1";
array[1][1] = "2";