源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅析为什么a="abc" 不等于 a=new String("abc")

  • 时间:2020-03-25 11:12 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅析为什么a="abc" 不等于 a=new String("abc")
显而易见
a="abc"
typeof a //string
b=new String("abc")
typeof b // object
a==b //true
a===b //false
但是为什么呢?看了很多书,问了好几个大神,其实自己还是稀里糊涂的。这里记录一下,备查。 在js中,区分原始资料类型和包装类型。数字、字符串、布尔、null、undefined 属于原始资料类型,而Number、String、Boolean属于包装类型,通过new Number 创建的是包装类型的派生对象。所以两者是不等的。 [b]直接赋值为基本类型之后的使用过程如下:[/b] 1、创建String类型的一个实例 2、在实例上调用指定的方法 3、销毁实例 [b]举例:[/b]
var a="123"
a.toFixed===Number.prototype.toFixed;
[b]这里还有一种说法:装箱,拆箱[/b] 装箱,就是用这个值类构造一个相应的包装对象
var a=10 ,b="javascript" , c=true;
  var o_a=new Number(a);
  var o_b=new String(b);
  var o_c=new Boolean(c);
   装箱的最大作用是将值作为对象来处理。 拆箱,是包装对象转换成值类型
var a=10;
 var o_a=new Number(a);
 var b=o_a.valueOf();//这就是拆箱的过程。
[b]总结[/b] 以上所述是小编给大家介绍的为什么a="abc" 不等于 a=new String("abc"),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部