js数据类型

string number 等一些数据类型,
有时候开头是大写是什么原因?他们两个一样么

阅读 3.9k
4 个回答

不一样,你得区分基本数据类型和基本包装类型,详见js高设第118页

单纯说类型的时候就是大写
然后就是做构造函数名时大写,这个应该能分的清。
MDN上有一句话。

首字母大写的Undefined表示的是一种数据类型,小写的undefined表示的是属于这种数据类型的唯一的一个值。

至于typeof()检测类型的返回值为什么是小写,因为返回的是字符串,就是那么规定的。
"string", "number"除了检测类型的时候,在别的地方好像没见过啊。

如果你想学习js并靠这个吃饭,那你这个问题就完全没必要。js的类型并不十分强制(不太好形容),很灵活。你可以声明个字符串然后又给变量赋值数值类型,随心所欲。你只要知道几个类型转换的方法就行了,悄悄的写几个输出,如果值是带双引号的,那就是字符串,不带双引号就是数字了。字符串转数字,直接在变量前加+就ok,数字转字符串就调用toString()方法。至于你研究他们的大小写的区别,或者到底用new声明好还是直接声明好,完全没必要。你如果在公司写个var str = new String(); 直接被嘲笑了。

既然不补充的话, 我也来猜一下.

new String()String()的区别

String() 函数把对象的值转换为字符串。// 函数 -> 返回值为字符串
typeof String("123")
new String() 创建 String 对象。// 实例化对象 -> 返回值对象
typeof new String("123")
"123".substr(0,2)//执行结果是什么?

答案为 自己运行一下.

其实啊, 很明显答案为"12".

但是作为一个基本类型为什么这么不安分, 能有自己的方法呢?

而在读取模式中访问字符串时,后台都会自动完成下列处理:
(1)创建String类型的一个实例。
(2)在实例上调用指定方法。
(3)销毁这个实例。

所以"123".substr(0,2); 等同于new String("123").substr(0,2);

Boolean/new Boolean 和 Number/new Number, 其区别也基本和上述相同.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题