位置: 编程技术 - 正文

在JavaScript并非所有的一切都是对象(&&在js中)

编辑:rootadmin

虽然很多语言宣称:“一切皆是对象”,但是 javascript 中,并不是所有的值都是对象。

原始值 vs 对象javascript 中的值可以被划分为两大类:原始值(primitive)和对象(object)。

定义javascript 的两种值的定义:

下面的值是原始值。

1.字符串2.数字:在 JavaScript 中所有的数字都是浮点数3.布尔值4.null5.undefined

所有其它的值都是对象(object)。对象可以进一步划分:

1.原始值的包装器:Boolean, Number, String。很少直接使用。

2.用字面量创建的对象。 下面的字面量产生对象,也可以通过构造函数创建对象。您可以使用字面量创建对象。

&#;[] 就是 new Array()&#;{} 就是 new Object()&#;function() {} 就是 new Function()&#;/s*/ 就是 new RegExp("\s*")3.日期:new Date("--")

区别您可以通过枚举的原语和定义对象非原语定义原语和对象。 但你也可以描述的原语和对象是什么。 让我们开始与对象。

1.对象是可变的:

2.每个对象都有自己唯一的标识符,因此通过字面量或构造函数创建的对象和任何其他对象都不相等,我们可以通过 === 进行比较。

对象是通过引用来比较的,只有两个对象有相同的标识,才认为这个对象是相等的。

3.变量保存了对象的引用,因此,如果两个变量应用了相同的对象——我们改变其中一个变量时,两一个也会随之改变。

正如预期的那样,原始值和对象不一样:

1.原始值是不可变的;你不能给它们添加属性:

2.原始值没有内部标识,原始值是按值比较的: 比较两个原始值的依据是他们的内容,如果两个原始值的内容相同,这认为这两个原始值相同。

这意味着,一个原始值的标识就是它的值,javascript 引擎没有为原始值分配唯一标识。

最后两个事实结合起来的意思是:我们无法区分一个变量到底是对象的引用,还是原始值的副本。

陷阱:原始值和它们的包装类型规则:忽略尽可能多的包装类型。 在其他编程语言如Java,你很少会注意到他们。

原始值类型 boolean, number 以及 string 都有自己对应的包装类型 Boolean, Number 和 String。 包装类型的实例都是对象值,两种类型之间的转换也很简单:

&#;转换为包装类型:new String("abc")&#;转换为原始类型:new String("abc").valueOf()原始值类型以及它们相应的包装器类型有很多不同点,例如:

包装类型的实例是一个对象,因此和 JavaScript 和对象一样,包装类型也无法进行值的比较(只能比较引用)。

原始值没有自己的方法包装对象类型很少被直接使用,但它们的原型对象定义了许多其对应的原始值也可以调用的方法。 例如,String.prototype 是包装类型 String 的原型对象。 它的所有方法都可以使用在字符串原始值上。 包装类型的方法 String.prototype.indexOf 在 字符串原始值上也有,它们并不是两个拥有相同名称的方法,而的的确确就是同一个方法:

在数字的包装类型 Number 的原型对象有 toFixed 方法,即 Number.prototype.toFixed,但是当我们写如下代码时却发生错误:

此错误是解析错误(SyntaxError),5 后面跟着一个点号(.),这个点被当作了小数点,而小数点后面应该是一个数,以下代码可以正常运行:

值的分类:typeof 和 instanceof如果你想要对值进行分类,你需要注意原始值和对象之间的区别。 typeof 运算可以用来区分原始值和对象。instanceof 可以用来区分对象,而且,instanceof 对于所有的原始值都返回 false。

typeoftypeof 可以用来判断原始值的类型,以及区分对象值和原始值:

typeof 返回以下字符串:

参数结果undefined"undefined"null"object"布尔值"boolean"数字"number"字符串"string"函数"function"其他"object"

注释:

&#;typeof 在操作 null 时会返回 "object",这是 JavaScript 语言本身的 bug。不幸的是,这个 bug 永远不可能被修复了,因为太多已有的代码已经依赖了这样的表现。这并不意味着,null 实际上就是一个对象[4] 。

&#;typeof 还可以让检查一个变量是否已声明,而不会抛出异常。 没有任何一个函数可以实现此功能,因为你不能把一个未声明的变量传递给函数的参数。

&#;函数也是对象类型;这可能是很多人无法理解的,但有时候却是非常有用的。

&#;数组是一个对象。

更多关于 typeof 的信息 [5] 和 [6]。

instanceofinstanceof 可以检测一个值是否是某个构造函数的实例:

如果上面的表达式返回 true,则表示 value 是 Constructor 的一个实例。它等价于:

大多数对象是 Object 的实例,因为原型链的末端(prototype chain)是 Object.prototype。 原始值不是任何对象的实例:

推荐整理分享在JavaScript并非所有的一切都是对象(&&在js中),希望有所帮助,仅作参考,欢迎阅读内容。

在JavaScript并非所有的一切都是对象(&&在js中)

文章相关热门搜索词:javascript程序可以单独存在,javascript中不必有明确的数据类型对吗,在javascript中,js中的或且非,js中的或且非,在javascript中,js中的或且非,在javascript中不存在哪些数据类型,内容如对您有帮助,希望把文章链接给更多的朋友!

谈谈关于JavaScript 中的 MVC 模式 原文:Model-View-Controller(MVC)withJavaScript作者:Alex@Net译文:JavaScript的MVC模式译者:justjavac本文介绍了模型-视图-控制器模式在JavaScript中的实现。我喜欢Java

你的 mixin 真的兼容 ECMAScript 5 吗? 我最近在与客户合作的项目中,需要充分利用的ECMAScript5,在此我遇到一个非常有趣的问题。该问题源于一个非常常见的模式:mixin,也就是在JavaScript

在javascript中关于节点内容加强 一、元素节点//测试元素节点,输出节点名称,节点的类型,节点的值varliElements=document.getElementsByTagName("li");for(vari=0;iliElements.length;i++){alert(liElements[i].nodeName)

标签: &&在js中

本文链接地址:https://www.jiuchutong.com/biancheng/377655.html 转载请保留说明!

上一篇:在JavaScript中typeof的用途介绍(在javascript中逻辑运算符包括)

下一篇:谈谈关于JavaScript 中的 MVC 模式(谈谈关于中华文明的五个突出特性)

  • 财务软件应交增值税明细科目
  • 会计准则折旧年限规定最新
  • 未交增值税最后到哪去了
  • 自然人股权转让的纳税筹划
  • 发生成本支出发票未到
  • 房地产收到客户房款如何做账
  • 虚减利润如何进行账务调整?
  • 未计提坏账准备金额在哪个科目
  • 公司发的奖金可以直接公司账户转账给员工吗?
  • 企业所得税可以选择不弥补亏损吗
  • 免税单位无租使用纳税单位土地
  • 中小企业固定资产管理存在的问题
  • 金蝶期末调汇怎么生成凭证
  • 扣缴上月税费会计分录
  • 库存商品换货的会计分录
  • 商贸公司进项税额大
  • 12306打不开怎么回事苹果手机
  • 会计凭证和记账凭证的区别是什么
  • 民非提供服务收到的现金怎么算
  • 实际利率是r还是i
  • 如何查询苹果手机充电次数
  • bios界面进入
  • 纳税人如何申请延期缴纳税款
  • ajax调用php函数
  • 安装win7教程
  • php ftell
  • 企业所得税的概述
  • 红字发票信息表填好后再怎么操作
  • 房地产企业预缴增值税如何申报
  • 股东出资未注明投资款可以通过验资报告处理么
  • Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
  • 关于 ChatGPT 必看的 10 篇论文
  • 论文笔记模板
  • Sublime Text 4 (Build 4143) 注册方法STEP BY STEP
  • php输出空格语句
  • 宝塔怎么做?
  • 城建税5%的是什么情况
  • 酒类包装物押金的增值税处理规定
  • 处置子公司利润表怎么处理
  • 企业自建房出售给员工个人后还需要缴纳土地使用税么
  • 小规模免增值税政策从什么时候开始
  • 长期挂账的"其他应收款"该怎么处置
  • 企业应付职工薪酬
  • 金蝶软件账套备份在哪里
  • mongodb迁移
  • 工商年报纳税总额包括滞纳金吗
  • 技术服务费会计科目
  • 企业所得税法开办费
  • 让渡资产使用权属于收入吗
  • 部分红冲的发票无法勾选怎么办
  • 递延收益与递延负债的区别
  • 建筑行业怎么确认主营业务收入
  • 当月已付款, 没收到发票怎么做账
  • 包装物范围
  • 企业购买原材料属于什么活动
  • 缴纳文化事业建设费的单位应按照提供广告服务
  • 长期股权投资权益法账务处理
  • 负数发票要给税务局吗
  • 公司房租收据可以入账吗
  • 建账的要点及应注意的问题
  • 企业经营规模小的原因
  • centos下安装jdk
  • 腾讯云 阿里云 营收对比
  • 下列哪种情况能使血管升压素释放增加
  • ubuntu20安装fcitx5
  • helppane是什么应用程序
  • windows 10预览版
  • cmd是什么意思 视频
  • cent linux
  • linux如何管理文件
  • 程序员基本入门知识
  • 查找重复字符串
  • javascript详解
  • JQuery.validationEngine表单验证插件(推荐)
  • unity小游戏代码
  • javascrip语言
  • jquery的插件
  • Android SimpleAdapter
  • 税务局分局局长是什么级别干部
  • 股东向公司借款需要什么手续
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设