一、typeof操作符
typeof 操作符是用来检测变量的数据类型,对于值或变量使用typeof操作符会返回如下字符串
字符串 | 描述 |
undefined | 未定义 |
boolean | 布尔值 |
btring | 字符串 |
number | 数值 |
object | 对象或null |
function | 函数 |
二、数据类型
1、undefined
undefined类型只有一个值,即特殊的undefined。在使用var声明变量,但没有对其初始化时,这个变量就是undefined。在实际的编码中,我们没有必要显式的给一个变量赋值为undefined,因为没有赋值的变量会隐式的(自动的)赋值为undefined,而undefined主要目的是为了用于比较。我们定义变量的是偶尽量不要只声明,不赋值。未初始化的变量与根本不存在的变量(未声明的变量)是一样的。
2、null类型
null类型是一个只有值得数据类型,即特殊的值null。它表示一个空对象引用(指针),而typeof操作符检测null会返回object。
3、Boolean类型
Boolean类型有两个值(字面量):true和false。而true不一定等于1,false不一定等于0,JavaScript是区分大小写的,True和False或者其他都不是Boolean类型的值。在ECMAScript中所有类型的值都有与这两个Boolean值等价的值。将要一个值转换为其对应的Boolean值,可以使用转型函数Boolean()。
4、Number类型
Number类型包含两种数值:整型和浮点型。
浮点类型就是数值中必须包含一个小数点,浮点数的最高精度是17位小数。如果浮点数值范围的最大值或最小值,那么就会出现Infinity(正无穷)或者-Infinity(负无穷)。如果想确定一个数值到底是否超过了规定范围,可以使用isFinite() 函数,如果没有超过,返回true,超过了返回false。
<span style="font-family:KaiTi_GB2312;font-size:24px;">var box=100e100;
alert(isFunite(box));//返回false或者true</span>
返回数值操作数未返回数值的情况用一个特殊的值NaN(非数值(Not a Number)来表示,这样错误就不会被抛出了。在ECMAScript中提供了isNaN() 函数,用来判断这个值到底是不NaN,isNaN()函数在接受到一个值后,会尝试将这个值转换为数值。isNaN()函数也适用于对象。在调用 isNaN()函数过程中,首先会调用 valueOf()方法, 然后确定返回值是否能够转换成数值。如果不能,则基于这个返回值再调用 toString()方法,再测试返回值。
<span style="font-family:KaiTi_GB2312;font-size:24px;">var box = {
toString : function () {
return 'Yang'; //改成Yang查看效果
}
};
alert(isNaN(box)); //false</span>
Number()、parseInt()和 parseFloat()。Number()函数是转型函数,可以用于任何数据类型,而另外两个则专门用于把字符串转成数值。
5、string类型
string类型用于表示由于零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以有双引号(“”)或(‘’)表示。但是单引号和双引号必须成对出现,不能穿插使用,否则会出错。String类型包含了一些特殊的字符字面量,也叫转义序列。
字面量 | 含义 |
\n | 换行 |
\t | 制表 |
\b | 空格 |
\r | 回车 |
\f | 进纸 |
\\ | 斜杠 |
\’ | 单引号 |
\” | 双引号 |
\xnn | 以十六进制代码nn表示的一个字符(0~F)。 |
\unnn | 以十六进制代码nnn表示的一个Unicode字符(0~F)。 |
6、object类型
Object()是对象构造,可以使用new Object()来表示对象,也可以使用这种new操作符来创建其他类型的对象。Object()里可以任意传参,可以传数值、字符串、布尔值等,而且可以进行相应的计算。但它也可以不需要传递参数。
三、总结
数据类型是JavaScript中EMCAScript中比较基础的一部分知识,感觉它和VB中的数据类型相似中也有不同。现在才理解米老师说的学了VB之后再学习其他语言就不会有多大的困难了。