在javascript中使用var运算符来申明变量。变量总体分为原始类型和引用类型。
1.原始类型存放在栈中,也就是值直接存储在变量访问的位置。
原始类型包含:Undefined、Null、Boolean、Number、String。
<span style="white-space:pre"> </span>var a = 2; //Number类型 <span style="white-space:pre"> </span>var b = false; //Boolean类型(值只有真或假) <span style="white-space:pre"> </span>var c = ‘hello world’; //String类型 <span style="white-space:pre"> </span>var d; //Undefined类型 <span style="white-space:pre"> </span>alert(e); //依然返回undefined <span style="white-space:pre"> </span>alert(null == undefined); //返回true
但是并不代表null与undefined相等,undefined通常表示申明了变量但没有初始化。nul通常表示尚未存在的对象。
对于Number类型,初始化的值必须在Number.MIN_VALUE与Number.MAX_VALUE值之间,这是边界,运算所得的值除外。
Infinity表示正无穷大,-Infinity表示负无穷大。
isFinite()方法可以判断变量是否是无穷大。
NaN是特殊的Number类型,通常是字符串或布尔值转换数字类型失败。但是NaN本身不等于自己。alert(NaN == NaN)返回false。
isNaN()方法可以判断变量是否是一个Number类型。
数据类型可以进行相互转化。如:toString(),该方法将其它类型转换为字符串类型。
var b = 20;
b.toString();转换为字符串类型,传参2、8、10、16,可以实现相应进制的转换。
parseInt()和parseFloat()将变量转换为数字型。parseInt()直接去掉小数部分。parseFloat()保留小数部分,小数位最长13位。
parseInt()可以使用基模式,如:
var b = 110;
parseInt(b,2); //以2进制的格式转换成10进制
第二个参数传2、8、10、16,申明对应的进制转换
parseInt(‘0Xa’);返回十进制的10;
但是parseFloat()没有基模式,而且不支持第一个参数传入8或16进制。
Javascript提供三个函数来执行数据类型的转换。
Boolean()、String()、Number();
Boolean()传参数,null、undefined、0、空返回false,其它为true.
Number()传参数,返回0、NaN、数字
String()与toString()基本相同,但是对于undefined和null的转换,String()会正常转换、toString()会报错。
2. 引用类型存放在堆中,存储在变量访问位置的是一个指针,指向存储对象的内存处。
对于数组和对象,返回则是object类型。
将会在后续的面向对象里详细介绍。