`
libubu
  • 浏览: 1805 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JavaScript 中的类型

阅读更多

JavaScript 是一门弱类型的语言,这意味着一个变量可以被赋予不同类型的值。但在某一特定的时刻,这个变量还是具有确定的类型的。在进行数据处理时,正确判断变量的类型,常常是非常重要的。

 

JavaScript中使用typeof操作符,会有以下几种类型返回值“number”, "boolean", "string", "undefined", "object", "function"。根据这些类型的性质不同,我们将其分成三个大类,基本类型,对象类型和函数类型

基本类型包括

  • 数字类型 number,字面量包括八进制,十进制,十六进制,小数,指数等多种方式
  • 布尔类型 boolean, 字面量包括true和false
  • 字符创类型 string, 字面量以"" 或 ''中的文字
  • 未定义类型 undefined,字面量是undefined,或未赋值过的变量

基本类型不是对象(类型)

基本类型没有原型链,也不能成为其它对象的原型

基本类型不能通过new关键字声明,而是通过字面量赋值声明

基本类型可以进行大小比较 (>, <, ==, ===)

基本类型没有自己的方法

 

 

对象类型 object

对象类型具备自己的原型链,原型链的根都为Object.prototype

对象类型可以通过 new 关键字声明

对象类型的比较类似C++中的地址比较,只可以比较两个变量是否指向同一个对象

对象类型包含方法,由于对象类型都直接或间接的继承自Object.prototype,所以至少有这个原型所定义的方法

null 是对象类型,只不过它是一个的空对象

 

函数类型 function

包括函数和方法,表示一段可执行的代码,通过Function关键字声明。可以赋值给一个变量,并通过这变量进行函数调用。

 

外覆类

尝试以下代码

 

var a = 3.14159265;
a.toFixed(2);

前面说了基本类型没有自己的方法,这是怎么回事?

原来JavaScript一旦发现在一个基本类型的变量上使用对象的一些操作,会自动的将基本类型替换为外覆对象(undefined类型除外)。

 

所以下面的getType总会返回

Object.prototype.getType = function(){
  return typeof this;
}

var o = "I am a string";
o.getType();   //返回"object"

 

 

外覆对象包括

  • Number
  • Boolean
  • String

同时外覆对象可以通过对象类型的new关键字声明。由于外覆对象是对象类型,所以任意两个都是不等的

var b1 = new Boolean(true);
var b2 = new Boolean(true);
b1 == b2;  //返回false

 编码中一定要意识到这点,否则极容易出错

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics