node.js - JavaScript의 이해할 수 없는 부분
ringa_lee
ringa_lee 2017-05-16 13:34:41
0
4
528

최근에 JavaScript(NodeJs)를 배우고 있습니다
JsonArray를 순회하기 위해 for를 사용할 때 문제를 발견했습니다.
당시에 이렇게 썼습니다:

논리적으로 말하면 이렇게 쓰는 것은 잘못된 것입니다. Null인지 판단했는데 실행해보니 실제로 성공했고 오류도 보고되지 않았으며 출력도 정상이었습니다
검은색 물음표 얼굴...
이게 어떻게 작동하는지 알려주세요...
아시겠어요? obj2=obj1.result[i]부울을 반환할까요? ?
예전에 JAVA를 배운 적이 있지만 JavaScript는 JAVA에 비해 조금 덜 엄숙한 느낌도 들고, 생각도 좀 갇혀있는 것 같아요...

ringa_lee
ringa_lee

ringa_lee

모든 응답(4)
我想大声告诉你

할당 표현식은 할당된 값을 반환합니다. 즉, 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

js는 동적 언어입니다. 즉, 특정 데이터 유형이 필요할 때 미리 설정된 규칙을 통해 들어오는 값을 특정 유형으로 변환하는 기능이 있습니다. 🎜 🎜그런 다음 방금 할당한 obj2=obj1.result[i] 표현식의 반환 값이 obj1.result[i]이면 js 엔진이 에 응답합니다. obj1 .result[i] 유형을 부울 유형으로 변환합니다. 🎜 🎜obj1.result[i]의 값이 NaN, 0, 정의되지 않음, 를 제외한 경우 > null'' 이외의 값은 true로 변환되고, 그렇지 않으면 false로 변환됩니다. 🎜
phpcn_u1582

대입 연산자의 반환 결과는 할당된 값입니다. 이는 Java를 포함한 모든 주요 C 언어에서 정의됩니다.

Java의 조건 판단은 부울 값만 사용할 수 있지만 JavaScript는 다릅니다. 여기에는 부울 값이 필요합니다. 제공한 값이 부울 값이 아닌 경우 암시적으로 부울 값으로 변환됩니다.

为情所困

Javascript는 약한 유형의 언어이므로 자동으로 변환됩니다~

我想大声告诉你

등호는 할당을 의미합니다. 이는 obj1.result[i]를 obj2에 할당했음을 의미하므로 항상 true입니다

= == ===의 차이점을 검색해 보면 질문을 읽고 이해하게 될 것입니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿