先给你展示下一段对变量很不错的诠释:
变量就是分配了一个值的参数,它就像一个容器,可以存放各种数据,变量的值被存放在计算机内存中,并可以随着程序的执行而发生变化。当计算机看到程序中的变量名,就会查看自己的内存并用在内存中找到的值来替换变量名。
简单数据类型
- Boolean:逻辑类型,其值为true或false,JavaScript也会在适当的时候将其值转换为1和0.如下面两段代码效果相同:
var isLoaded=true; if(isLoaded){ alert('ok!'); } var isLoaded=true; if(isLoaded==1){ alert('ok!'); }
- String:字符串类型,除了内存限制没有长度限制。复制使用单引号或双引号包围。特殊字符需要使用转义字符,如\b表示退格符(ASCII 8);也可以用16进制来指定如\x41表示A;甚至可以试用16进制指定的16位(双字节)的Unicode如\u0041表示A。
- Number:数值型,可以试用10进制、8进制和16进制表示,前导0用于表示8进制,前导0x表示16进制。但8进制和16进制不能表示浮点数和科学计数。
- Null:空类型,只有一个值null。表示无值;
- Undefined:只有一个值undefined。表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。
复杂数据类型
- Array:数组类型,元素数据类型很自由,可以混合各种数据类型;
- Object:属性结合类型;
常量
- true/false:逻辑真/假;
- null:空;
- undefined:未定义/未赋值;
- NaN:非数字,可以用isNan函数检测;
- Infinity:正无穷大;
- -Infinity:负无穷大;
null与undefined
undefined 是由null派生处理的,因此undefined == null,但undefined !== null;
- null 是 JavaScript 保留关键字,是对象,但为空,因为是对象所以 typeof null 返回 'object',null 转换为数值为 0,而undefined转换为NaN;null 可用于释放对象,以便及时垃圾回收;
-
undefined是全局对象(window)的一个特殊属性,而不是JavaScript的保留关键字,其值是未定义的。但 typeof undefined 返回 'undefined' 。
以下三种情况typeof 返回类型为undefined:
1. 当变量未初始化时;
2.变量未定义时;
3.函数无明确返回值时(函数没有返回值时返回的都是undefined);