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


Posted in Javascript onOctober 25, 2017

显而易见

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 创建的是包装类型的派生对象。所以两者是不等的。

直接赋值为基本类型之后的使用过程如下:

1、创建String类型的一个实例

2、在实例上调用指定的方法

3、销毁实例

举例:

var a="123"
a.toFixed===Number.prototype.toFixed;

这里还有一种说法:装箱,拆箱

装箱,就是用这个值类构造一个相应的包装对象

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();//这就是拆箱的过程。

总结

以上所述是小编给大家介绍的为什么a="abc" 不等于 a=new String("abc"),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
js实现有时间限制消失的图片方法
Feb 27 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
Feb 14 Javascript
jQuery图片左右滚动代码 有左右按钮实例
Jun 20 Javascript
在 Node.js 中使用原生 ES 模块方法解析
Sep 19 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
Dec 18 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
Jun 22 Javascript
实例分析编写vue组件方法
Feb 12 Javascript
vue通过过滤器实现数据格式化
Jul 20 Javascript
vue实现下拉菜单树
Oct 22 Javascript
vue语法之拼接字符串的示例代码
Oct 25 #Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 #Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
Oct 25 #Javascript
浅谈Node.js之异步流控制
Oct 25 #Javascript
AngularJS 实现购物车全选反选功能
Oct 24 #Javascript
React Native时间转换格式工具类分享
Oct 24 #Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
Oct 24 #Javascript
You might like
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
PHP实现的购物车类实例
2015/06/17 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
python空元组在all中返回结果详解
2020/12/15 Python
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
《桃林那间小木屋》教学反思
2014/05/01 职场文书
欢迎领导检查标语
2014/06/27 职场文书
学习保证书100字
2015/02/26 职场文书
志愿服务心得体会
2016/01/15 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
Java并发编程必备之Future机制
2021/06/30 Java/Android
Python中异常处理用法
2021/11/27 Python