为了账号安全,请及时绑定邮箱和手机立即绑定

问个单间的问题

为什么变量前面要加个+号呢,意义是什么

正在回答

2 回答

可能有3种作用:

1、第一种就是数学中的加法

   var a = 1;
   var b = 2;
   var c = a + b;  // 此时 c = 3

2、字符串链接

   var str = 'abc';
   var str2 = 'def';
   var str3 = str + str2; // 此时str3 = 'abcdef'

3、转型,即把其它类型转为数值(或字符串)

var time = +new Date(); // 调用time对象的 valueOf 方法,返回时间戳

// 此时obj 并不是一个对象,而是一个数值,值是 999
var obj = +{ valueOf:function(){ return 999; } } 

// 会调用对象的toString方法,然后执行字符串连接 obj2 = 'i am a object'
var obj2 = '' +{ toString:function(){ return 'i am a object' } }

// 如果一个对象即含有toString方法,又含有valueOf方法,那么调用那个呢?
// 答案是 + 会首先调用valueOf,toString只是个备胎。。两者都存在,你说调用哪一个?你试试就知道啦
var obj3 = { toString:function(){ return 'i am a object' },valueOf:function(){ return 999 } }+''

总结:+ 号引起的操作或转型是javaScript中的所有的转型中的一种情况。我昨天晚上写了一篇涵盖几乎所有转型的情况的文章,现在慕课网正在审核。估计审核通过,马上就能在文章列表中看到了。请关注。。文章名字《JavaScript转型面面观》

0 回复 有任何疑惑可以回复我~
#1

jiayouba 提问者

好的,非常感谢!!!
2015-11-26 回复 有任何疑惑可以回复我~

为了和其他的连接起来呀。 比喻 var a = "abc";    var str="asdsadas"+a;  str就等于了 asdsadasabc  

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468313    人
  • 解答问题       21893    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

问个单间的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信