理顺 JavaScript (4) - 变量、常量与数据类型
2010-09-14 13:41:09 来源:WEB开发网这是 JS 为了简单而带来的麻烦, 其实不用考虑那么多, 可以把 string 与 String 混起来使用, JS 编译器会在幕后处理一切; 譬如:
var X = new String('ABC'); /* 此时 X 是 String 对象 */
var Y = new String('123'); /* 此时 Y 是 String 对象 */
var XY = X + Y; /* 此时 XY 是 string 类型 */
alert(XY); /* ABC123 */
alert(XY.length); /* 6 */
var X = 'ABC'; /* 此时 X 是 string 类型 */
var Y = '123'; /* 此时 Y 是 string 类型 */
var XY = new String(X + Y); /* 此时 XY 是 String 对象 */
alert(XY); /* ABC123 */
alert(XY.length); /* 6 */
/* 上面的字符串长度属性(length) 本来是属于 String 对象的, string 类型的字符串照样使用;
这有可能是编译器迅速做了个转换; 在 JS 中任何类型的转换都是方便自由的. */
说到 JavaScript 类型的简单化, 它的数值类型只有一个 number(类似与 Delphi 的 Double);
也没有单个字符类型, 需要时给长度是 1 的字符串就是了.
和 Delphi 的指针类似, 可以给 JS 的变量赋空值: null; 这个 null 和上面的 undefined 不好区别.
null 是已赋值, 但是空值;
undefined 是没赋值或不存在.
alert(undefined == null); /* true ; 简单地看, 它们差不多 */
alert(undefined === null); /* false ; 仔细地看, 它们不一样 */
/* null 作为空值(相当与 0)可以参与数值运算 */
var X;
X = 123 + null; alert(X); /* 123 */
X = 123 + undefined; alert(X); /* NaN */
//JS 的理念应该是这样的:
//未知类型也是类型, 没有赋值也是值: undefined;
//空值也是值: null.
Tags:理顺 JavaScript 变量
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接