JavaScript原始类型和相应的对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript原始类型和相应的对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1476字,纯文字阅读大概需要3分钟。
内容图文
![JavaScript原始类型和相应的对象](/upload/InfoBanner/zyjiaocheng/706/a2d94a4c0faa40f388a940c7aa538f96.jpg)
在JavaScript中,并非每个数据都是对象.存在一些原始类型,如字符串,数字和布尔值,它们不是对象.对于这些类型中的每一种,都存在一个构造函数,它输出具有类似行为的对象:Number,String和Boolean.为了混淆问题,实际上可以在原始类型上调用方法 – 它们将在此操作期间转换为相应的对象,然后转换回来.例如,人们可以做到
var a = 4.1324;
a.toFixed(1) // Outputs 4.1
然而,如果您尝试将原始类型和对象与严格相等进行比较,则会出现差异
var a = new Number(4);
var b = 4;
a === b; // False!!!
typeof a; // 'object'
typeof b; // 'number'
实际上,一个人试图比较对象,但结果却是不同的:
var a = new Number(4);
var b = new Number(4);
a === b; // False!!!
(从概念的角度来看,我有点理解这种区别.对象可以有其他属性,因此它们不应该相等,除非它们实际上是相同的.所以如果我们想要4 === 4我们需要使用类型不是一个对象.但任何充分动态的编程语言都面临着这种困境,但JavaScript是我所知道的唯一一种有两种类型 – 一种是对象的而一种不是 – 用于数字或字符串.)
What is the advantage of keeping two separate representations for numbers, strings and Booleans? In what context could one need the distinction between primitive types and objects?
解决方法:
What is the advantage of keeping two
separate representations for numbers,
strings and Booleans?
性能
In what context could one need the
distinction between primitive types
and objects?
想到了强制. 0 == false而新的Number(0)!= false
例如:
var a = new Boolean(false);
if(a) {
// This code runs
}
但
var a = false;
if(a) {
// This code never runs
}
你可以在这里阅读更多关于强制的信息:JavaScript Coercion Demystified
内容总结
以上是互联网集市为您收集整理的JavaScript原始类型和相应的对象全部内容,希望文章能够帮你解决JavaScript原始类型和相应的对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。