Javascript 逻辑运算符后的屈服
为什么JavaScript不允许Javascript 逻辑运算符后的屈服,javascript,node.js,generator,yield,Javascript,Node.js,Generator,Yield,为什么JavaScript不允许在逻辑运算符之后产生,比如&或|,甚至?例如,当我尝试: function *generator(arg1, arg2) { yield arg1 && yield arg2; } 在大多数浏览器和NodeJ中,它都会抛出一个错误,即yield是保留字。当我使用yield*时也会发生同样的情况。但是,即使在同一行中,我也可以将两条语句与yield(或yield*)背靠背使用,如下所示: function *generator(arg1,
在逻辑运算符之后产生,比如&
或|
,甚至代码>?例如,当我尝试:
function *generator(arg1, arg2) {
yield arg1 && yield arg2;
}
在大多数浏览器和NodeJ中,它都会抛出一个错误,即yield
是保留字。当我使用yield*
时也会发生同样的情况。但是,即使在同一行中,我也可以将两条语句与yield
(或yield*
)背靠背使用,如下所示:
function *generator(arg1, arg2) {
yield arg1; yield arg2;
}
我理解这两种类型的声明之间存在一些差异,但它们似乎非常相似,应该允许两者都使用。为什么不是这样为什么在分号后面直接允许产生,而不是逻辑运算符?
请参见
yield
关键字导致生成器函数执行暂停,并且
将yield
关键字后面的表达式的值返回到
发电机的来电。可以将其视为基于生成器的版本
返回
关键字的
yield
关键字实际上返回一个带有两个
属性,值
和完成
。值
属性是
计算yield
表达式和done
是一个布尔值
发电机功能是否已完全完成
出现yield
期望表达式跟随yield
yield表达式和&yield
将在&
之后返回yield
,而不会到达第二个表达式;不会将迭代器结果
返回到生成器函数请参阅
yield
关键字导致生成器函数执行暂停,并且
将yield
关键字后面的表达式的值返回到
发电机的来电。可以将其视为基于生成器的版本
返回
关键字的
yield
关键字实际上返回一个带有两个
属性,值
和完成
。值
属性是
计算yield
表达式和done
是一个布尔值
发电机功能是否已完全完成
出现yield
期望表达式跟随yield
yield表达式和&yield
将在&
之后返回yield
,而不会到达第二个表达式;不会将迭代器结果
返回到生成器函数请参阅
yield
关键字导致生成器函数执行暂停,并且
将yield
关键字后面的表达式的值返回到
发电机的来电。可以将其视为基于生成器的版本
返回
关键字的
yield
关键字实际上返回一个带有两个
属性,值
和完成
。值
属性是
计算yield
表达式和done
是一个布尔值
发电机功能是否已完全完成
出现yield
期望表达式跟随yield
yield表达式和&yield
将在&
之后返回yield
,而不会到达第二个表达式;不会将迭代器结果
返回到生成器函数请参阅
yield
关键字导致生成器函数执行暂停,并且
将yield
关键字后面的表达式的值返回到
发电机的来电。可以将其视为基于生成器的版本
返回
关键字的
yield
关键字实际上返回一个带有两个
属性,值
和完成
。值
属性是
计算yield
表达式和done
是一个布尔值
发电机功能是否已完全完成
出现yield
期望表达式跟随yield
yield表达式和&yield
将在&
之后返回yield
,而不会到达第二个表达式;不会将迭代器结果
返回到生成器函数您有语法错误
尝试:
相反,在严格的模式下,当然。(这是我和巴贝尔合作得到的。)您有语法错误
尝试:
相反,在严格的模式下,当然。(这是我和巴贝尔合作得到的。)您有语法错误
尝试:
相反,在严格的模式下,当然。(这是我和巴贝尔合作得到的。)您有语法错误
尝试:
相反,在严格的模式下,当然。(这是我和巴贝尔合作的结果。)收益率arg1和收益率arg2是您实际想要做的吗?你有真实世界的例子吗?我正在使用koa
和co-fs
。我试图找出一个文件夹是否存在并且是否是一个文件夹(即,yield fs.exists(this.path)和&fs.stat(this.path).isDirectory()
)以替代service static
)。我打算用稍微不同的方法来做,但是调查让我好奇。嗯,fs.exists和fs.stat都是异步的。不确定您是否可以返回它们,因为它们需要回调。。。但这并不能回答你的问题。使用co-fs
你可以。收益率arg1和收益率arg2是你真正想要做的吗?你有真实世界的例子吗?我正在使用koa
和co-fs
。我试图找出一个文件夹是否存在并且是一个文件夹(即,yield fs.exists(this.path)和&fs.stat(this.path).isDirectory()
)作为
function *g (a1,a2) {yield a1 && (yield a2);}