최근에 JavaScript(NodeJs)를 배우고 있습니다
JsonArray를 순회하기 위해 for를 사용할 때 문제를 발견했습니다.
당시에 이렇게 썼습니다:
논리적으로 말하면 이렇게 쓰는 것은 잘못된 것입니다. Null인지 판단했는데 실행해보니 실제로 성공했고 오류도 보고되지 않았으며 출력도 정상이었습니다
검은색 물음표 얼굴...
이게 어떻게 작동하는지 알려주세요...
아시겠어요? obj2=obj1.result[i]
부울을 반환할까요? ?
예전에 JAVA를 배운 적이 있지만 JavaScript는 JAVA에 비해 조금 덜 엄숙한 느낌도 들고, 생각도 좀 갇혀있는 것 같아요...
我想大声告诉你2017-05-16 13:36:41
할당 표현식은 할당된 값을 반환합니다. 즉, obj2=obj1.result[i]
는 obj1.result[i]
를 반환합니다. obj2=obj1.result[i]
会返回obj1.result[i]
。
js是动态语言,它有隐私转换的特性,就是在该需要用到某种数据类型的时候,它会通过预先的规则来将传进来的值转换成特定的类型。
那么在刚刚赋值表达式obj2=obj1.result[i]
中返回值是obj1.result[i]
,那js引擎就会对obj1.result[i]
进行类型转换成Boolean类型。
如果你obj1.result[i]
的值是除NaN
,0
,undefined
,null
,''
之外的其他值,都会转换成true
,否则则是false
obj2=obj1.result[i]
표현식의 반환 값이 obj1.result[i]
이면 js 엔진이 에 응답합니다. obj1 .result[i]
유형을 부울 유형으로 변환합니다. 🎜
🎜obj1.result[i]
의 값이 NaN
, 0
, 정의되지 않음
, 를 제외한 경우 > null
및 ''
이외의 값은 true
로 변환되고, 그렇지 않으면 false
로 변환됩니다. 🎜phpcn_u15822017-05-16 13:36:41
대입 연산자의 반환 결과는 할당된 값입니다. 이는 Java를 포함한 모든 주요 C 언어에서 정의됩니다.
Java의 조건 판단은 부울 값만 사용할 수 있지만 JavaScript는 다릅니다. 여기에는 부울 값이 필요합니다. 제공한 값이 부울 값이 아닌 경우 암시적으로 부울 값으로 변환됩니다.
我想大声告诉你2017-05-16 13:36:41
등호는 할당을 의미합니다. 이는 obj1.result[i]를 obj2에 할당했음을 의미하므로 항상 true입니다
= == ===의 차이점을 검색해 보면 질문을 읽고 이해하게 될 것입니다