在一次运行中分配并返回一个变量
Assign and return a variable in one run
这些结构是否相同而没有副作用?
// First variant
var a;
var assignVar = function(){ return a = 10; }
var b = assignVar()
// Second variant
var a;
var assignVar = function(){ a = 10; return a; }
var b = assignVar()
我可以给一个变量赋值并同时返回它吗?还是应该先分配,然后返回?有什么警告和不同的行为吗?
是的,这是安全的,并且两个函数是等效的。几乎所有语言的赋值运算符都被严格定义为返回赋值,我所知道的唯一例外是在C++等语言中,你可以重载运算符。在Javascript中,赋值总是"返回"赋值。
相关权限是ECMAScript 2015规范第12.14.4节,其中所有控制路径都以"Return rval"退出,这是操作员右侧的部分。
您只需执行第一种方法即可。不过,我会用括号把它包起来,这样你和其他人就知道你对变量做了什么,你会看两遍。
(function(){ return (a = 10) })()
我最好像这个一样做
var a = (function(){ return 10; }())
相关文章:
- 如何从jquery函数返回变量
- 返回变量作为构造函数
- 从导出的模块返回变量,并在另一个文件(NodeJS)中使用它
- 在JavaScript和knockout.js中,为什么可以'我不返回一个变量吗?为什么我必须返回变量,就好像它
- 如何从匿名函数返回变量
- 在呈现函数中返回变量
- 在设置超时后返回变量
- AngularJS在大括号中返回变量名称,而不是值
- JQuery:创建扩展返回变量未定义
- 我应该从量角器中元素的 getText() 承诺中分配一个变量或返回变量
- AJAX 在 cicle 完成后返回变量
- 如何返回变量并同时重置/删除它
- 如何从 javascript 中的回调函数返回变量
- 返回变量而不声明它的函数
- 正在从数组中返回变量名
- 从reader.onload事件返回变量
- 延迟返回变量,直到数据从Firebase同步
- 函数不't返回变量
- 如何将函数中的返回变量插入HTML表单
- Javascript 方法不返回变量