js中什么是对象,对象的概念是什么?

我们一直在用对象 可是你真的理解对象吗,js中有一个说法是一切皆对象,其实这里说的应该是

一切皆可看作对象

对象就是可以拥有属性和方法的一个集合 士兵就是一个对象,它拥有身高体重的属性,保家卫国,吃饭睡觉的动作方法

在座的各位都是对象,世界上的万物都可看作对象,所以说,编程世界多姿多彩

也可以理解为无序的键值对  var obj={width:100,height:200,say:function(){//code}};

就相当于 var obj={};

obj.width=100;   //width属性值200

obj.height=200;   //height属性值200

obj.say=function(){  //say方法

//code

并且对象的属性和方法可以改变

obj.width=200;

方法同理

概念理解了,其实代码就容易理解了。

现在说说一切皆可看作对象是怎么来的,我说说我自己的理解

数据类型分为两种 基本数据类型和引用类型

基本数据分为string,number,boolean,null,undefined

基本类型(基本数值、基本数据类型)是指非 对象 并且无方法的数据

一个一个说

  var up="he is a super man";
  var output=up.charAt(5);
  console.log(output);//a
  /*为什么基本数据类型可以使用字符串方法呢
  因为包装对象:当执行 var output=up.charAt(5);这个步骤的时候
  后台会这样 var up=new String("he is a super man");找到对应的包装对象,包装成一个和up值相等的对象返    回
  var output=up.charAt(5);调用方法返回给output
  up=null; 然后销毁

同理,数字、布尔值在读取属性的时候也可以通过自己的构造函数来创建自己的一个临时对象,并像对象一样(就是一个对象)引用各自的属性,所以,字符串、数字、布尔值都可以看成是对象,注意,这里是看成对象,他们并不是真正的对象,也就是严格来说,它们并不是对象,因为对象是可变的,可以修改属性,而原始值是不可变的是不可修改的(看下面)

 

var b="abcdefg";
console.log(b.toUpperCase());
console.log(b);

它只是返回一个变成大写的副本没有改变原始的变量

而且不能在原始数据类型上添加属性和方法。

 

因为创建的只是一个临时对象,写的属性和方法只存在于临时对象上,引用完后随即销毁

ps:还没有访问就已经销毁了

*/

接着说说null  他是一个关键字,表示为“空" 并且 console.log(typeof null); //object

由此可见它是一个对象,但是它只是指向一个空对象的引用。

然后是undefined,undefined是另一个表示“空值”特殊值,它表示未定义,当我们对变量只声明没有初始化时(赋值),输出为undefined,当我们引用一个不存在的属性时,输出也为undefined,但是请注意它并不是一个关键字,它是一个变量,而且是一个全局变量,我们可以验证一下:

console.log( undefined in window);//true

而且console.log(typeof undefined);//undefined

这严格表明undefined是这个类型的唯一成员

除了undefined js里面其他一切的都可以看作是对象  记住是看作 !!!


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

又做了3个极品菜[图]

今天的是: 极品豆角炒鸡蛋 极品黄瓜炒鸡蛋 极品炒菠菜没鸡蛋 其他我做的菜请看 《我做的菜很香很好吃[有图]》 转载于:https://www.cnblogs.com/zjneter/archive/2008/04/13/1151383.html

Spring Integration Java DSL示例

现在已经为Spring Integration引入了新的基于Java的DSL ,这使得可以使用基于纯Java的配置而不是基于Spring XML的配置来定义Spring Integration消息流。 我尝试使用DSL来获得示例集成流–我称其为Rube Goldberg流 ,因为它在尝试大写作为输入传递的字符串…

automake linux,Linux下automake软件编译与发布快速入门

Linux下automake软件编译与发布快速入门2008-04-22eNet&Ciweek进入编辑界面,输入内容如下:AUTOMAKE_OPTIONSforeignbin_PROGRAMSsimserver1 #软件包名称simserver1_SOURCESsimserver1.cpp  #源文件列表,如果有多个则用空格分开LIBS -l…

android fragmentactivity fragment,Android:Activity与Fragment通信(99%)完美解决方案

前言最近一直在想着能否有一种更好的方案来解决:Android中Activity与Fragment之间通信的问题,什么叫更好呢,就是能让Fragment的复用性高,性能还有好(不用反射),代码还要好维护,不需要为每对Activity和Fragm…

分布式人工智能标记语言(DAIML)示例

DAIML(Distributed Artificial Intelligence Markup Language)是用于分布式人工智能系统中智能语言的标记库。DAIML主要分为Pattern和Template两部分,Pattern用于模式匹配,Template用于回答模板,下面将分别介绍两者的示…

Ext.js数据展示问题name展示code

出现以上问题是因为model中定义的类型跟数据库不匹配 去掉js中vehicleModel的type或者改为type:int即可。转载于:https://www.cnblogs.com/feifeicui/p/10438900.html

Solr中的前缀和后缀匹配

搜索引擎都是关于查找字符串的。 用户输入一个查询词,然后从反向索引中检索它。 有时,用户正在寻找的值只是索引中值的子字符串,并且用户可能也对这些匹配感兴趣。 对于德语这样的包含复合词(例如Semmelkndel)的语言&a…

使用FormData进行Ajax请求上传文件

Servlet3.0开始提供了一系列的注解来配置Servlet、Filter、Listener等等。这种方式可以极大的简化在开发中大量的xml的配置。从这个版本开始,web.xml可以不再需要,使用相关的注解同样可以完成相应的配置。 我笔记里也有记文件上传:https://w…

基于 jq 实现拖拽上传 APK 文件,js解析 APK 信息

技术栈 jquery文件上传:jquery.fileupload,github 文档apk 文件解析:app-info-parser,github 文档参考:前端解析ipa、apk安装包信息 —— app-info-parser 支持功能 点击或拖拽上传 apk 文件校验文件类型及文件大小js …

调试以了解终结器

这篇文章涵盖了Java内置概念之一,称为Finalizer 。 这个概念实际上是众所周知的,也是众所周知的,这取决于您是否有足够的时间来仔细研究一下java.lang.Object类。 就在java.lang.Object本身中,有一个名为finalize(&…

Zookeeper实现注册与发现

1.Zookeeper的数据模型 (1) Zookeeper的数据模型,类似于树形结构: (2) Zookeeper的每一个节点成为称为Znode,主要用来存储数据。 data : 存储数据信息。acl : 记录Znode的访问权限。child : 当前节点的子节点引用。stat :包含Zn…

class 命名规范

本文是从简书复制的, markdown语法可能有些出入, 想看"正版"和更多内容请关注 简书: 小贤笔记 注: 文章摘自 penggelies07- 简书, super晴天 - CSDN 常见class关键词 布局类:header, footer, container, main, content, aside, page, section 包裹类&am…

web策略类游戏开发(四)一个可以承载万人在线的架构

web策略类游戏开发(四)一个可以承载万人在线的架构 Webgame现在已经开始需要进入大统一服务器时代,每个游戏区域容纳的玩家数量将从现在的几万人发展到几十万人,因此在新的背景下,webgame如何处理大量用户的请求将成为问题。目前一台asp.net做…

复制物料时不复制安全库存

1.打开bos,选择物料-功能控制 2.把允许复制去掉 转载于:https://www.cnblogs.com/RogerLu/p/10441588.html

CSS实现水平垂直居中

1、需求分析 子元素在父元素中水平垂直居中 2、技术分析 基础的css、html 3、详细分析 如图: 3.1 HTML部分 如图所示&#xff0c;大边框内包含一个小边框两部分&#xff0c;设置一个父元素div和一个子元素div。 <div class"container">父元素<div class…

从Java连接到Cassandra

在我的帖子Hello Cassandra中 &#xff0c;我研究了如何下载Cassandra NoSQL数据库并使用cqlsh连接到Cassandra数据库。 在本文中&#xff0c;我将介绍从Java客户端连接到Cassandra数据库的基础知识。 尽管有几种可用于从Java访问Cassandra数据库的 框架 &#xff0c;但我将在…

Django---Model操作

一、字段 1 AutoField(Field)2 - int自增列&#xff0c;必须填入参数 primary_keyTrue3 4 BigAutoField(AutoField)5 - bigint自增列&#xff0c;必须填入参数 primary_keyTrue6 7 注&#xff1a;当model中如果没有自增列&#xff0c;则自动会创建…

Vuex的第一次接触

前言&#xff1a;最近在做Vue实现去哪网&#xff0c;想要实现在城市列表页面&#xff0c;点击某个城市的时候&#xff0c;主页的头部的城市会随着改变&#xff0c;就是首页和城市页面有共用的数据要分享&#xff0c;这里使用Vuex 1. Vuex是什么&#xff1f; 是Vue官方推荐的数…

java IO流小结

Java流操作有关的类或接口&#xff1a; Java流类图结构&#xff1a; 流的概念和作用 流是一组有顺序的&#xff0c;有起点和终点的字节集合&#xff0c;是对数据传输的总称或抽象。即数据在两设备间的传输称为流&#xff0c;流的本质是数据传输&#xff0c;根据数据传输特性将流…

华为android是什么型号,华为手机机型众多,目前这几款最值得入手

华为手机机型众多&#xff0c;目前这几款最值得入手2020-09-22 15:00:033点赞0收藏0评论华为手机可以说是国家手机的代名词。受某种感情的影响&#xff0c;很多人都用华为取代了iPhone。为了表达感情&#xff0c;很多人也纷纷效仿&#xff0c;购买华为手机。但我想说的是支持华…