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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值