javascript中三种基本数据类型的特殊之处 - jarry - 我想去非洲
无内容div占据空间的触发条件和解决方法
(转载)网页栅格系统研究(1):960的秘密

javascript中三种基本数据类型的特殊之处

jarry posted @ 2009年9月30日 00:34 in 未分类 , 2574 阅读

起这么一个标题似乎有点吸引眼球的嫌疑,其实就是js中三种基本类型的对象操作时的特殊性,我们知道在javascript中有三种基本数据类型分别是number,string,boolean,此外他们还分别有各自的对象包装类型Number、String、Boolean,如果我们对Boolean型的数据,我是说Boolean对象进行toString()等对象操作时是可以的:

alert(new Boolean(true).toString());

 那如果用直接量呢?

alert(true.toString());

也是可以的,但是true并不是一个对象,它只是一种基本数据类型,这在java等强类型语言中是绝对不允许的,js中之所以可以是因为true.toString()的时候创建了一个Boolean类型的对象。类似的'sss'.toString(); 1..toString();都是一样的。以下是验证:

    Number.prototype.param1 = 'number param1';
    String.prototype.param1 = 'string param1';
    Boolean.prototype.param1 = 'boolean param1';
    alert(1..param1);
    alert(''.param1);
    alert(true.param1);
    alert(1..constructor);
    alert(''.constructor);
    alert(true.constructor);

对于1..toString()这种写法请见js中数字字面量的constructor

(程序可自由转载,但是请注明出处)

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter