关于javascript中=的返回值
2016-07-27 13:12
176 查看
今天看了一段代码,大概是这样的:
function test(){ a=4; b=5; return b=a; } test();//返回?
返回值是多少呢?运行结果是4
这可以理解为将a的值赋给b以后,返回b的值,也就是说“=”是有返回值的。
如果是这样的话我们不难理解:
var a=3; var b=4; console.log(c=(a=b));//4
<pre name="code" class="javascript">console.log(a);//4console.log(c);//4 控制台输出4 4 4
a=b运算后,a被赋值为4,并返回4,c=4运算后,c被赋值为4,并且返回4
举一反三:
var a=0; if(a=10){ console.log("true"); }else{ console.log("false"); }控制台输出true;
因为a=10,运算后返回10而if(10)将被判断为true
var a=0; if(a=0){ console.log("true"); }else{ console.log("false"); }
控制台输出false;
因为a=0,运算后返回0,而if(0)将被判断为false
所以同志们不小心把==写成=的话应该知道结果会变成什么样了吧。转载请注明出处。
后续:
这样一道题,a=b=3;那么a=?
答案是3,这没有问题。
继续问:如果我继续改变b的值,如b=2;那么a=?
我感觉应该是3,以为这是赋值,而不是索引。
有人说a=2,我当时比较迷惑,但也没有继续深入这个话题,害怕自己说的多错的多。
刚才我用chrome浏览器的控制台尝试了一下,的确是a=3。
看来人要大胆说出自己的想法,坚持自己的想法才对。哪怕是错了呢。
相关文章推荐
- 关于Javascript中构造函数返回值的问题
- javascript少儿编程关于返回值的函数内容
- 关于写接口返回值应该注意的问题。
- 关于javascript中Math对象的属性与方法研究
- javascript:showModalDialog 关于window.showModelDialog()方法打开的窗口
- 关于编写性能高效的javascript事件的技术
- 关于JavaScript中“类”的思考
- 关于JavaScript命名空间的一些心得
- 关于javascript模块加载技术的一些思考
- 【语言-C++】关于CString 函数GetLength()返回值等于0
- javascript中关于window对象属性的全面介绍
- 关于使用$.ajax()返回值的问题
- 关于javascript 一些知识
- javascript typeof undefined 返回值
- 一个误区(关于javascript的字符串拼接)
- 关于Javascript作用域及作用域链的总结
- 关于Google发布的JavaScript代码规范你要知道哪些
- 关于window.open和window.showdialog返回值的问题
- javascript关于复选框的实用脚本代码
- UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值