引用Crockford:
分配表达式
避免在if和while语句的条件部分进行赋值。
时
UIViewController
正确的陈述?或是
if (a = b) {
意?避免使用不易确定的构造。
if (a == b) {
那么,克罗克福德的引言是什么意思?
答案 0 :(得分:2)
这意味着
if (a = b) {
实际上是一项作业,将b
的值分配给a
,这通常不是您想要的。
那篇文章只是告诉你要注意你只有在你真正意味着它时才这样做,而你通常不这样做。通常人们想在那里进行比较,所以
if (a == b) {
反例:如果您运行以下操作,只有在您确认弹出窗口时才会打印true
,否则就会打印出来。
if(a = confirm('test')) { console.log(a) }
请注意,这是一项分配,我们会在a
内打印if
的值。
答案 1 :(得分:0)
var username = prompt("username");
var password = prompt("password");
if(username = "youdontknowme")
if(password = "12345678")
alert("logged in successfully!");
好像对吗?就试一试吧!因此,大多数IDE会警告您,分配可能应该是比较。如果你没有这样的vlever IDE,你需要自己发现它,这就是为什么Crockford先生试图让你意识到它。