Javascript 基础篇 操作符
Javascript 基础 操作符
3.4.1 typeof操作符
因为ECMAScript是松散类型的,因此需要一种手段检测给定变量的数据类型——typeof因此而生.
对一个值使用了typeof操作符可能返回下列某个字符串。
- "undefined"——如果这个值未定义
- "boolean"——如果这个值是布尔值
- "string"——如果这个值是字符串
- "number"——如果这个值是数字
- "object"——如果这个值是对象或null
- "function"——如果这个值是函数
例子:
var message = "some string"; alert(typeof(message)); // "string" alert(typeof message); // "string" alert(typeof(95)) // "number"
typeof操作符的操作数可以是变量(message),也可以是数值字面量.
从技术角度讲,函数在ECMAScript中是对象,不是一种数据类型,然而,函数也确实有一些特殊的属性,因此通过typeof操作符来区分函数和其他对象是有必要的.
3.4.2 Undefined类型
Undefined类型只有一个值,即特殊的undefined.
一般不存在需要显示化把一个变量设置为undefined值的情况.字面量undefined主要目的在于用于比较,为了正式区分空对象指针与未经初始化的变量。
var message; //这个变量声名之后默认取得了undefined值 // 下面这个变量并没有声名 // var age alert(message); // "undefined" alert(age); // 产生错误
对于未声名的变量,用typeof检测其数据类型,返回undefined,这样对于未初始化和未声名的返回的都是undefined
var message; //这个变量声名之后默认取得了undefined值 // 下面这个变量并没有声名 // var age alert(typeof message); // "undefined" alert(typeof age); // "undefined"
Jquery源码中,开始就有传一个undefined参数,是为了函数内undefined字面量统一。
3.4.3 Null类型
NUll类型第二个只有一个值的数据类型,这个特殊的值就是null.null是一个空对象指针,typeof检测null值时会返回“object”类型。主要用于检测对象。
1 var car = null; 2 alert(typeof car); //"object" 3 4 //如果定义变量用来保存对象,最好初始化未null,而非其他类型,这样只要检查null值就可知道变量是否已经保存一个对象的引用了. 5 6 if (car != null){ 7 //即对象存在,对car对象执行某些操作 8 }
3.4.4 Boolean类型
两个字面值:true和false
Boolean()方法可以将各种数据类型转换为boolean类型,
if(变量)的情况下,会对变量调用Boolean函数.
数据类型 | 转换为true的值 | 转换未false的值 |
Boolean | true | false |
String | 任何非空字符串 | “”(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
前面这几个为比较重要的内容,后面的内容暂时不介绍了。