Javascript万物皆对象?
在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万物皆对象?的更多相关文章
- javascript是脚本语言?javascript万物皆对象?
呵呵哒!带你见识下js面对对象的魅力 是的是的,退后,朕要开始装逼了- 这是什么鸟东西?是的是的,装逼开始,2016年度最佳JS编译器,ES6标准出来后,小伙伴们对新特性摩拳擦掌,奈何浏览器支持把我们 ...
- 20190814 On Java8 第三章 万物皆对象
第三章 万物皆对象 对象创建 数据存储 有5个不同的地方可以存储数据: 寄存器 (Registers) 最快的存储区域,位于CPU内部 .无法直接控制. 栈内存(Stack) 存在于常规内存 RAM ...
- 万物皆对象的JavaScript
写在前面: 经过前段时间对于H5语言的学习,开始慢慢适应现在的生活节奏和代码语言.从一开始的毫无头绪到现在可以大概地写出部分的网站静态页面,用了两个周的时间.作为一个之前从未接触过计算机语言的初学者来 ...
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...
- java万物皆对象
我们以Dom对象的形式 可以CRUD xml文件或xml字串(经流把xml文件读出转成字串) 我们以JsonObject对象的形式 可以CRUD json字串 还有正则表达式.ORM都是.
- 房上的猫:类和对象>万物皆对象
众所周知:java是一门面向对象的编程语言 本章将介绍基础的类和对象 一.对象 对象是用来描述客观事物的一个实体,由一组属性和方法构成二.封装 封装就是把一个事物包装起来,并尽可能隐藏内部细节三.类 ...
- 什么是对象:EVERYTHING IS OBJECT(万物皆对象)
所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么(方法):告诉外界对象有那些功能. 后者以前者为基础. 大的对象的属性也可以是一个对象.
- 又一次认识java(一) ---- 万物皆对象
假设你现实中没有对象.至少你在java世界里会有茫茫多的对象,听起来是不是非常激动呢? 对象,引用,类与现实世界 现实世界里有许很多多的生物,非生物,跑的跳的飞的,过去的如今的未来的,令人眼花缭乱.我 ...
- Python赋值原理:Python无变量,万物皆对象
有几个和以前的常见语言,比如c语言不同 改变变量数据不覆盖原来的 name = '苍老师' print(id(name)) name = '志玲' print(id(name)) 运行结果 73955 ...
随机推荐
- 去除安卓apk中的广告
一般来说,安卓应用很多免费的apk都是有广告的.尽管我们要坚持尊重开发者,帮帮他们点击广告赚钱来可持续发展,但是有的时候,很多游戏中游戏实在是太影响感觉了,当找不到汉化破解版本的时候,也许需要亲自把它 ...
- CVPR2015深度学习回顾
原文链接:http://www.csdn.net/article/2015-08-06/2825395 本文做了少量修改,仅作转载存贮,如有疑问或版权问题,请访问原作者或告知本人. CVPR可谓计算机 ...
- git_仓库
本地仓库 仓库(repository)可以理解成一个目录,这个目录里面的所有文件都可以被git管理起来,每个文件的修改删除git都能进行跟踪. 创建一个空目录---进入文件下---查看当前路径,当前路 ...
- springboot 大致启动流程
SpringApplication的run方法的实现是我们本次旅程的主要线路,该方法的主要流程大体可以归纳如下: 1) 如果我们使用的是SpringApplication的静态run方法,那么,这个方 ...
- GDI 边框绘制函数(8)
绘制矩形 调用 Rectangle 函数可以绘制一个矩形(它将填充这个矩形): BOOL Rectangle( HDC hdc, // 设备环境句柄 int nLeftRect, // 左边线的位置 ...
- 为什么多 TCP 连接比单 TCP 连接传输快
转自: 我观察到,客户端机器从单一服务器使用 HTTP 下载一个文件:1. 单连接下载,速度没有达到客户端网络的最大带宽:2. 多连接同时下载,传输速度有极大的提高,带宽被占满. 假设如下前提:1. ...
- [luogu1034] 矩形覆盖 (暴力)
传送门 Description 给n(n<=50)个点(x,y),要求用k(1<=k<=4)个没有联系的矩形覆盖住求矩形最小面积 Solution 感觉不是很可做,结果看TJ后发现数 ...
- Git 基础教程 之 创建版本库
一,选择一个合适的地方,创建空目录,下面两种方法都可 ① 手动新建 ② 使用命令: mkdir pythonwork 二,初始化,使目录变成Git可管理的仓库 执行: git i ...
- vue采坑一:全局API
Vue.set Vue.set( target, key, value ),target不能是 Vue 实例,或者 Vue 实例的根数据对象,因为源码中做了如下判断: var ob = (target ...
- 【习题4-1 Uva1589】Xiangqi
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 车是可以被吃掉的... 注意这个情况. 其他的模拟即可. [代码] #include <bits/stdc++.h> u ...