javascript中一切皆对象?基本数据类型也是对象吗?

原创 2017年01月03日 16:57:46

学习js经常看到这句话——Javascript里面所有的数据类型都是对象 。

1.我们知道js ES5中数据类型分为基本数据类型和复杂数据类型。

基本类型有5类,分别是null,undefined,number,string,boolen。

复杂数据类型是object;

2.基本数据类型又被成为值类型 ; 复杂数据类型又被成为引用类型;

3.是不是所有的数据类型都是对象?明显不是。只有复杂数据类型是对象。

4.举个栗子;

String.prototype.str=function()
{
return 'hello';
}
var str1=5;
str1 instanceof String //结果:false
typeof str1  	       //'string'
str1.str() 	       //hello 可以调用到String.prototype挂载的方法
var str2=new String('a_string');
typeof str2            //object
str2.str()             //hello
也可以调用到Number.prototype挂载的方法

所以,在不需要明确判断类型字符串的时候,其实用法上基本没区别。

区别在于,通过对象类型初始化的(typeof显示object) 可以挂载任意方法。而原始类型却不能。
str2.bb=function()
{
return 'bb'
}
str2.bb()   //bb
str1.bb=function(){
return 'bb'
}
str1.bb()  //Uncaught TypeError: str1.bb is not a function(…)
除了undefined 和 null 不能直接调用属性,其它的基本数据类型都可以直接调用属性,不存在则返回undefined

所以说js是基于对象的脚本语言。

5.另一个栗子;
var num = new Number(7);

console.log(num instanceof Number);  //true
console.log(typeof a);                            // "object"


var num = 7;

console.log(num instanceof Number ); //false
console.log(typeof num);                       //"number"

【前端笔记--转载】JS中是否一切皆对象

写在前面 网上非常多都在说”JavaScript一切皆对象“,那么这个"一切"到底是实实在在的"一切",还是一个虚数?也有看过网上的文章,有的三纸无驴,就是抄抄概念,有的也只是解释了一部分,并没有给...
  • natsuyu
  • natsuyu
  • 2016年03月12日 10:09
  • 1305

JS一切皆对象的由来

这是我看过的关于JS原型和原型链的解析质量很高的一篇博客,来和大家分享一下! http://www.cnblogs.com/giggle/p/5204348.html...
  • sonnylight
  • sonnylight
  • 2016年08月16日 08:45
  • 511

Java一切皆对象

一:引用操作对象 在Java中,一切都被视为对象,既然一切都是对象,那就有一个相同的方式来操作对象,所操作的标示符实际上是对对象的一个引用。这里可以理解为遥控器操作电视机,遥控器是可以单独存在的,也就...
  • dzy21
  • dzy21
  • 2016年06月24日 07:30
  • 566

python的万物皆对象以及int深入

在python语言中,万物皆对象,非常pure。不像java还有primitive data types这些非对象类型存在。 首先介绍一下is id ==这三个东西: 1、id(objec...
  • u014115273
  • u014115273
  • 2016年11月07日 21:28
  • 329

python 一切皆对象

python 一切皆对象在python中有一句话“一切皆对象”,其实在刚开始接触python的时候对这句话完全不理解,即使是看完了python基础教程也没有很好的理解这句话的含义。直到看了python...
  • LRLZ_Python
  • LRLZ_Python
  • 2015年11月17日 20:56
  • 3659

重读《Java编程思想》之一:一切皆是对象

最近重新开始读《Java编程思想》,系统的复习一下Java基础知识,只有打好了坚实的基础,才能有进一步的提高。 在读的过程中发现好多东西又有了更深的理解,还有些东西已经遗忘,为了避免再次遗忘,在这里...
  • Kevinzhangfei
  • Kevinzhangfei
  • 2011年11月28日 10:53
  • 1890

JavaScript 万物皆对象?

原文链接我的blog。 为什么说“ JavaScript 万物皆对象?”,这个“万物”,难道真的是“万物”?其实不然。在 JavaScript 中一共有七种主要类型: String Number Bo...
  • github_36978270
  • github_36978270
  • 2017年05月28日 09:14
  • 711

一切皆为对象

首先得说明,“一切皆为对象”是至理名言,至少在C#中,你应该时刻以这个理念来设计你的程序,理解这个理念对你的学习大有裨益。C#作为一种面对对象的语言,而不是面向过程,体现在它的各个语言元素和语法结构都...
  • jain2150
  • jain2150
  • 2008年05月20日 08:28
  • 516

python(2) 万物皆对象

函数也是一个对象,也可以有属性
  • whd0310
  • whd0310
  • 2014年05月15日 18:18
  • 438

java回忆录—类与对象(万物皆对象)

对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型,其定义为:class 类名{ }一句话:对象是类的实例,类是对象的模板我们如何表示一个现实世界事物呢:属性 就是该事物的描述信息——...
  • qq_22063697
  • qq_22063697
  • 2016年08月04日 00:10
  • 1533
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript中一切皆对象?基本数据类型也是对象吗?
举报原因:
原因补充:

(最多只允许输入30个字)