在javascript的世界里,有这么一句话,万物皆对象

但是这个对象,应该怎么理解呢?

exm........??,难道值类型也是对象?!!

当然,不是。

准确地讲是对于“引用类型”而言。

那,在JavaScript的世界里,怎么区分“值类型”和“引用类型”呢?

哟呼,答案:typeof

让我们一起写个demo,猜猜看typeofShow()会输出哪些结果。

 <!DOCTYPE html>
<head>
<title>javascript</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
function typeofShow(){
console.log( typeof x );
console.log( typeof 1 );
console.log( typeof '' );
console.log( typeof true );
console.log( typeof function(){} );
console.log( typeof [] );
console.log( typeof {} );
console.log( typeof null );
console.log( typeof new Number(1) );
}
typeofShow();
</script>
</body>
</html>

运行上面代码,打开chrome调试,得下效果图,你猜对了么?

从上图,可以看出,除开“值类型”,typeof输出的其他都是function和object,即“引用类型”。

但是刚才不是说到,引用类型都是对象么。。那typeof  function(){} 输出的怎么是function,而不是object呢?

function到底是不是对象呢?

答案:function也是对象的,不信,我们利用instanceof来检验检验。

 <!DOCTYPE html>
<head>
<title>javascript</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
function test(){};
console.log( test instanceof Object);
</script>
</body>
</html>

下面是运行结果图

或者还记得函数function还有一种写法么,如下

var fn = new Function(“x”, “y”, “return x+ y ”);

这会信了吧。

通常的对象,一般是利用键值对表示的,例如下面这样:

 var obj = {
one:[],
two:'',
three: function(){},
four:{
four1:''
}
}

可是,那数组和函数不也是对象吗,他们也可以这样表示吗?

当然不可以,但它们可以采用另一种形式。如函数,可以这样:

 function fn(){

 }
fn.a=[];
fn.b=function(){}

总之,在javascript的世界里,对象就是属性的集合。

Javascript万物皆对象?的更多相关文章

  1. javascript是脚本语言?javascript万物皆对象?

    呵呵哒!带你见识下js面对对象的魅力 是的是的,退后,朕要开始装逼了- 这是什么鸟东西?是的是的,装逼开始,2016年度最佳JS编译器,ES6标准出来后,小伙伴们对新特性摩拳擦掌,奈何浏览器支持把我们 ...

  2. 20190814 On Java8 第三章 万物皆对象

    第三章 万物皆对象 对象创建 数据存储 有5个不同的地方可以存储数据: 寄存器 (Registers) 最快的存储区域,位于CPU内部 .无法直接控制. 栈内存(Stack) 存在于常规内存 RAM ...

  3. 万物皆对象的JavaScript

    写在前面: 经过前段时间对于H5语言的学习,开始慢慢适应现在的生活节奏和代码语言.从一开始的毫无头绪到现在可以大概地写出部分的网站静态页面,用了两个周的时间.作为一个之前从未接触过计算机语言的初学者来 ...

  4. 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)

    一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...

  5. java万物皆对象

    我们以Dom对象的形式 可以CRUD xml文件或xml字串(经流把xml文件读出转成字串) 我们以JsonObject对象的形式 可以CRUD json字串 还有正则表达式.ORM都是.

  6. 房上的猫:类和对象>万物皆对象

    众所周知:java是一门面向对象的编程语言 本章将介绍基础的类和对象 一.对象 对象是用来描述客观事物的一个实体,由一组属性和方法构成二.封装 封装就是把一个事物包装起来,并尽可能隐藏内部细节三.类  ...

  7. 什么是对象:EVERYTHING IS OBJECT(万物皆对象)

      所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么(方法):告诉外界对象有那些功能. 后者以前者为基础. 大的对象的属性也可以是一个对象.

  8. 又一次认识java(一) ---- 万物皆对象

    假设你现实中没有对象.至少你在java世界里会有茫茫多的对象,听起来是不是非常激动呢? 对象,引用,类与现实世界 现实世界里有许很多多的生物,非生物,跑的跳的飞的,过去的如今的未来的,令人眼花缭乱.我 ...

  9. Python赋值原理:Python无变量,万物皆对象

    有几个和以前的常见语言,比如c语言不同 改变变量数据不覆盖原来的 name = '苍老师' print(id(name)) name = '志玲' print(id(name)) 运行结果 73955 ...

随机推荐

  1. Android 解析JSON

    上次讲了XML格式数据的解析方式,这次要说的是如何解析JSON数据格式,相对与XML,JSON解析数据的方式在于它的体积更小,在网络上传输可以更省流量. 这次在网上找到一个中国天气json数据的API ...

  2. oracle从入门到精通复习笔记续集之PL/SQL(轻量版)

    复习内容: PL/SQL的基本语法.记录类型.流程控制.游标的使用. 异常处理机制.存储函数/存储过程.触发器. 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结 ...

  3. React Native Windows下环境安装(一)

    1.安装chocolatey 以管理员权限运行命令提示符(cmd.exe) @powershell -NoProfile -ExecutionPolicy Bypass -Command " ...

  4. HTML5 video常用属性

    一.视频video常用标签方法 <!-- controls 控制条,播放暂停等 controlslist 控制不允许全屏 不允许下载等 poster 封面 autoplay 自动播放 muted ...

  5. JDK8新特性:Lambda表达式

    Lambda表达式,案例一:new Thread(() -> System.out.println("thread")); Lambda表达式,案例二:由参数/箭头和主体组成 ...

  6. PAT_A1030#Travel Plan

    Source: PAT A1030 Travel Plan (30 分) Description: A traveler's map gives the distances between citie ...

  7. 11.【Linq】

    11.2.4  Cast . OfType 和显式类型的范围变量 这两个操作符很相似:都可以处理任意非类型化的序列(它们是非泛型 IEnumerable 类的扩展方法),并返回强类型的序列. Cast ...

  8. swift UITableViewCell 中的单选控制样式

    我昨天在网上找了一晚上的资料,但是大多都是OC得语法,swift资料实在是太少了,使得我这个刚入门swift的彩笔好不吃力,后面一直各种翻阅资料,终于让我找到了 visibleCells 这个方法,直 ...

  9. 09.正则表达式re-2.complie函数

    compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下: import re # 将正则表达式编译成 Pattern 对象 pattern = re.compil ...

  10. 1、springboot+mybatis+zookeeper+dubbox+maven+pagehelper

    一.创建普通的maven的web项目 2.配置KD42WF_Part1下的pom.xml <?xml version="1.0" encoding="UTF-8&q ...