无法找出我在以下代码中写的不正确,因此它不会返回false。调试时发现
中有错误((typeof radioValue === 'scheduleademo') && date1 === '')
因为它在执行过程中具有以下值
radioValue = "scheduleademo", date1 = ""
如果满足以下条件,则完成:
if (name === '' || emailID === '' || phone === '' || companyname === '' || noofemployees === null || message === '' ||
radioValue === '' || (typeof radioValue === 'undefined') || ((typeof radioValue === 'scheduleademo') && date1 === '')) {
return false;
}
答案 0 :(得分:1)
问题是您比较类型而不是(typeof radioValue === 'scheduleademo')
中的值。您可能想要比较类似(radioValue === 'scheduleademo')
JavaScript中的typeof
operator返回给定操作数的类型。
由于为radioValue
指定了一个字符串,因此typeof radioValue
将返回'string'
。这就是(typeof radioValue === 'scheduleademo')
总是返回false的原因。
完成更正的代码:
if (name === '' || emailID === '' || phone === '' || companyname === '' || noofemployees === null || message === '' ||
radioValue === '' || (typeof radioValue === 'undefined') || ((radioValue === 'scheduleademo') && date1 === '')) {
return false;
}
答案 1 :(得分:0)
typeof返回变量的原始类型。可以是“数组”,“字符串”,“数字”。不是实际值。
typeof radioValue === 'scheduleademo'
这将始终是错误的。永永远远。请检查定义的类型:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
答案 2 :(得分:0)
typeof
是一元运算符,它仅返回类型,例如:
typeof "scheduleademo" //"string"
typeof 2 //"number"
您应该使用它来检查变量类型是否与字符串不匹配
typeof radioValue === 'scheduleademo'
应 radioValue === 'scheduleademo'
或typeof radioValue === 'undefined'
答案 3 :(得分:0)
在这种情况下,它应该返回false
,因为typeof属性将返回数据类型,例如数组,字符串,对象等。
typeof radioValue
应该是返回值,不是类型。 scheduleademo
不是有效的类型,因此您可以使用(typeof radioValue === 'string')
来检查其是否符合要求的条件。
在这里请注意,我假设scheduleademo
是一个字符串。
正确答案:
if (name === '' || emailID === '' || phone === '' || companyname === '' || noofemployees === null || message === '' ||
radioValue === '' || (typeof radioValue === 'undefined') || ((typeof radioValue === 'string') && date1 === '')) {
return false;
}