javascript之一切都是对象
在学习的过程中,我们常常能听到这样一句话:一切皆是对象。那么这句话该如何理解呢?
首先,我们要明确对象的概念。要明白除了基本数据类型都是对象。
typeof操作符是大家经常使用的,我们常用它来检测给定变量的数据类型。
1 var a;
2 console.log(typeof a); //undefined
3 console.log(typeof true); //boolean
4 console.log(typeof 'abc'); //string
5 console.log(typeof 12); //number
6 console.log(typeof null); //object,null被认为是一个空的对象引用
7
8 function fn (){
9 var a = 10;
10 }
11 console.log(typeof fn); //function
12 console.log(typeof [1, 'aaa', false]); //object
13 console.log(typeof {name: 'lisi',age: 18}); //object
js中分两种数据类型
基本数据类型:Null, Boolean, Number, String, Undefined, Symbol(ES6)
引用数据类型:Object (在js中,除了基本数据类型都是对象,函数是对象,正则表达式也是对象)
函数在js中是对象,不是一种数据类型。但是函数有一些特殊的属性,所以通过typeof来区分函数和其他对象是有必要的。
判断一个变量是不是对象很简单,基本数据类型的判断用typeof, 引用数据类型的判断用instanceof.
var b = 123;
if (typeof b == 'number') {
console.log("number类型");
}
var person = {
name: 'zhangsan',
age: 12
};
if(person instanceof Object){
console.log('Object类型的对象');
}
对象是属性的集合,属性可以包括基本值,对象或者函数。
1 //早期人们这样创建对象
2 var person = new Object();
3 person.name = 'lisi';
4 person.age = 12;
5 person.sayName = function (){
6 alert(this.name);
7 };
8 //现在常用字面量语法
9 var person = {
10 name: 'lisi',
11 age: 12,
12 sayName: function (){
13 alert(this.name);
14 }
15 };
在上例中,创建了一个名为person的对象,并为它添加了两个属性(name,age)和一个方法属性( sayName() )。由此可见,对象是属性的集合。
还有一个问题,既然函数是对象,那么函数该怎样添加属性呢?
//函数添加属性
function fn (){
var a = 10;
}
fn.a = '123';
fn.b = function (){
alert('bbb');
}
总之,要理解一切都是对象,要明确两个概念。第一,除了基本数据类型都是对象;第二,对象是属性的集合,属性包括基本值、对象和函数。
javascript之一切都是对象的更多相关文章
- 前端之JavaScript:JS之DOM对象三
js之DOM对象三 一.JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){} 第二种:for ...
- 深入理解javascript原型和闭包(1)——一切都是对象
“一切都是对象”这句话的重点在于如何去理解“对象”这个概念. ——当然,也不是所有的都是对象,值类型就不是对象. 首先咱们还是先看看javascript中一个常用的函数——typeof().typeo ...
- 深入理解javascript原型和闭包(1)---一切都是对象
深入理解javascript原型和闭包(1)---一切都是对象 type函数输出的类型,在此列出: function show (x){ console.log(typeof(x));//undefi ...
- 深入理解javascript原型和闭包(1)——一切都是对象 (转载)
深入理解javascript原型和闭包(1)——一切都是对象 http://www.cnblogs.com/wangfupeng1988/p/3977987.html “一切都是对象”这句话的重点在 ...
- JS对象 JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。
什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法: ...
- 程序猿都没对象,JS竟然有对象?
现在做项目基本是套用框架,不论是网上的前端还是后端框架,也会寻找一些封装好的插件拿来即用,但还是希望拿来时最好自己过后再回过头了解里面的原理,学习里面优秀的东西,不论代码封装性,还是小到命名. 好吧, ...
- javascript 核心语言笔记 6 - 对象
对象是 JavaScript 的基本数据类型.是一种复合值:将很多值聚合在一起.对象可以看做是无序集合,每个属性都是一个名/值对.这种基本数据结构还有很多叫法,比如「散列」(hash).「散列表」(h ...
- javascript之一切皆为对象3
在前面两个章节“Javascript之一切皆为对象1”和“Javascript之一切皆为对象2”中,曾提到: 1.“一切(引用类型)皆为对象” 2. “每个函数都有一个prototype” 3. “每 ...
- javascript之一切皆为对象2
其实呢,“函数function”和“对象object”之间还有这么一句话:对象是通过函数来创建的,而函数却又是一种对象. 这个函数是一种对象,上节中“Javascript之一切皆为对象1”也清楚的阐述 ...
随机推荐
- 通过CRM系统改变传统工作模式
在现在这个互联网时代,同行业的竞争越发激烈,因此许多企业都选择使用CRM来提高企业的销售业绩.CRM客户关系管理系统是能够优化企业的销售流程.维护良好的客户关系.对销售流程进行管理的强大工具.但是很多 ...
- 转载 https://www.cnblogs.com/bobo-pcb/p/11708459.html
https://www.cnblogs.com/bobo-pcb/p/11708459.html #### 1 用VMware 15.0+win10企业版 1次安装成功 20200124 2 不要用v ...
- Java中JDK,JRE和JVM之间的关系-(转载)
初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Envi ...
- 如何做好FAE工作及FAE职位发展————资深FAE总结推荐
http://bbs.elecfans.com/jishu_932585_1_1.html 曾经认识一位做电源研发的工程师,转行在一家代理商做FAE,做了一年半以后,就提出了离职请求,他老板问他是什么 ...
- Ansible-快速启动
Ansible是一款简单的运维自动化工具,只需要使用ssh协议连接就可以来进行系统管理,自动化执行命令,部署等任务. Ansible的特点 1.ansible轻量级无客户端agentless,只需要双 ...
- Linux应用程序设计:用一种讨巧方式,来获取线程栈的使用信息
面对的问题 对于线程的栈空间,相信各位小伙伴都不陌生.它有下面的这几项特性: > 1. 由操作系统分配固定的空间; > > 2. 使用一个栈寄存器来保存实时位置; > > ...
- Java基础语法,常用知识复习
1.开发环境搭建 1.1JDK.JRE.JVM.的关系 JDK = JRE + 开发工具集(例如javac编译工具集等) JRE = JVM + Java SE 标准类库 2.基本语法 2.1.jav ...
- kafka之二:手把手教你安装kafka2.8.0(绝对实用)
前面分享了kafka的基本知识,下面就要对kafka进行实操,先看如何安装. kafka需要zookepper的支持,所以要安装kafka需要有zookeeper的环境,zookeeper安装请参见& ...
- 将视频插入视频:CVPR2019论文解析
将视频插入视频:CVPR2019论文解析 Inserting Videos into Videos 论文链接: http://openaccess.thecvf.com/content_CVPR_20 ...
- MIT Graph实践概述
MIT Graph实践概述 Features功能 • iCloud Support • Multi Local & Cloud Graphs • Thread Safe • S ...