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”也清楚的阐述 ...
随机推荐
- 日常Bug排查-系统失去响应-Redis使用不当
日常Bug排查-系统失去响应-Redis使用不当 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 开发反应线上系统出现失去响 ...
- Python数模笔记-NetworkX(3)条件最短路径
1.带有条件约束的最短路径问题 最短路径问题是图论中求两个顶点之间的最短路径问题,通常是求最短加权路径. 条件最短路径,指带有约束条件.限制条件的最短路径.例如,顶点约束,包括必经点或禁止点的限制:边 ...
- istioctl命令整理
显示配置文件中的差异 istioctl profile diff default demo 显示对应配置的profile istioctl profile dump demo 显示可用的配置 isti ...
- [云计算] OpenStack 发展史
传统数据中心面临的问题 无法管理,资源利用率不高 资源分配不合理 初始成本高 发展阶段 IDC 托管/租用 VPS(虚拟专用主机/OpenVZ/XEN) 虚拟主机 云主机 虚拟化 服务器虚拟化 KVM ...
- [刷题] 3 Longest Substring Without Repeating Character
要求 在一个字符串中寻找没有重复字母的最长子串 举例 输入:abcabcbb 输出:abc 细节 字符集?字母?数字+字母?ASCII? 大小写是否敏感? 思路 滑动窗口 如果当前窗口没有重复字母,j ...
- 怎么用CMD命令进入D盘
怎么用CMD命令进入D盘 太平洋电脑网 已认证的官方帐号 6 人赞同了该文章 大家都知道win操作系统想要打开D盘,直接点我的电脑就能进d盘了,有时候只能使用dos的情况下也利用系统自带的cmd命 ...
- 本文介绍使用windows系统自带的远程桌面mstsc连接Centos 7.x远程桌面的基本方法。
本文介绍使用windows系统自带的远程桌面mstsc连接Centos 7.x远程桌面的基本方法. 一.前言 我希望用windows远程访问centos图形界面.xmanager连接centos远程桌 ...
- CentOS 7系统启动后怎么从命令行模式切换到图形界面模式
CentOS 7系统启动后怎么从命令行模式切换到图形界面模式原创传智播客官方博客 最后发布于2020-04-08 15:44:43 阅读数 88 收藏展开一.存在问题 在VMware虚拟机中成功安装c ...
- Hutool :一个小而全的 Java 工具类库
Hutool 简介 Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的 ...
- 如何设置 web 项目打开的默认页面
引言 我们在创建 Web 项目启动 Tomcat 会自动打开一个默认 index.jsp 页面,这个页面是创建 Web 项目时就自动生成的.那么,如何设置 web 项目打开的这个的默认页面,改为自己的 ...