请问javascript对象类型的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/29 19:34:49
请问javascript对象类型的问题?

document.write (typeof(Object(123)));显示的是object
document.write (typeof(Object("123")));显示的是object
document.write (typeof(Object(true)));显示的是object
document.write (typeof(Array(0)));显示的是object

document.write (typeof(String("123")));显示的是头个字母小写的string
document.write (typeof(Number(123)));显示的是头个字母小写的number

发现只有Object和Array返回的类型才是对象,

而从String和Number返回的类型显示的就不是object,可是String("123")和Number(123)

又可以写成String("123").constructor和Number(123).constructor

那么就是说只有对象才有constructor构造函数,而他们的类型却不是显示object,

请问返回值的类型为string和number算不算对象?

是对象...

但是String被重新定义为字符串类型,而Number被定义为所有数值型的大类

number, string, boolean, object, function, undefined

是返回的6种可能~

var number1 = new Number(123);
var number2 = number1;
number1 = 456;
alert("1:" + number1 + "\r\n" + "2:" + number2);

var string1 = new String("AAA");
var string2 = string1;
string1 = "BBB";
alert("1:" + string1 + "\r\n" + "2:" + string2);

var array1 = new Array([1]);
var array2 = array1;
array1[0] = 3;
alert("1:" + array1[0] + "\r\n" + "2:" + array2[0]);

JavaScript是弱类型语言,也就是你可以把一个整数当做字符串,甚至可以把这个字符串当做一个对象,而每一个对象都有个prototype类型,太复杂的就不解释了,有兴趣可以找本JavaScript的书自己扣两天

总之记住一点就是JavaScript里面所有的var都是没有具体类型的,当然如果你再调用时候乱指定类型也会出现undefined错误

楼主误入歧途了
但是一两句话说不明白,我是没办法救你了

水能载舟,亦能煮粥啊