Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的等式比较使用=(单个等于)不能正确工作?_Javascript_Equality - Fatal编程技术网

Javascript 为什么我的等式比较使用=(单个等于)不能正确工作?

Javascript 为什么我的等式比较使用=(单个等于)不能正确工作?,javascript,equality,Javascript,Equality,我试图检查一个字符串是否为空,小于或等于9位,或者最多为10位。但是,如果str.length=始终是赋值,则它总是跟在else后面。相等比较为==松散,强制类型尝试进行匹配,或===无类型强制 所以你想要 if (str === ''){ // -----^^^ 不是 如果str=完成赋值str=时会发生什么情况,然后测试结果值,如果忽略两个细节,效果就像这样: str = ''; if (str) { 因为在JavaScript中是一个虚假的值,所以该检查将是错误的,它将转到else i

我试图检查一个字符串是否为空,小于或等于9位,或者最多为10位。但是,如果str.length=始终是赋值,则它总是跟在else后面。相等比较为==松散,强制类型尝试进行匹配,或===无类型强制

所以你想要

if (str === ''){
// -----^^^
不是

如果str=完成赋值str=时会发生什么情况,然后测试结果值,如果忽略两个细节,效果就像这样:

str = '';
if (str) {

因为在JavaScript中是一个虚假的值,所以该检查将是错误的,它将转到else if str.length,我确信对于这个…。@T.J.Crowder肯定有一个规范性的问题-可能,但如果其中任何一个的标题像这个一样清晰,我会感到惊讶。大多数情况下,他们来做我的代码不起作用,我也不知道why@Quentin:是的。我正在把这个编辑成一个-@T.J.Crowder-oops,没注意到那是你的编辑:@Quentin:别担心,那是个更好的标题
// NOT THIS
if (str = ''){
// -----^
str = '';
if (str) {