javascript - JS 삼항 연산자에 대한 질문
天蓬老师
天蓬老师 2017-05-19 10:17:40
0
3
655

삼항 연산자에서 문자열 연결 연산자를 사용할 때 조건이 변경되면 결과가 변경되지 않는 이유는 무엇입니까?

으아악
으아악

단, 문자열 연결 연산자와 삼항 연산자 앞의 문자열을 제거하면 정상으로 돌아옵니다

으아악
으아악

해결책이 필요하신가요?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(3)
曾经蜡笔没有小新

첫 번째:
삼항 연산자가 무엇인가요?
{1} ? {2} : {3} ;
JS 엔진은 True인 경우 먼저 Boolean({1})을 실행한 다음 {2를 반환합니다. }, False{3}Boolean({1}) 如果为 True 则返回 {2}False则返回{3}
然后:
"she is "+true === "she is true" //严格相等
所以
Boolean("she is "+true) === Boolean("she is true") // 等于 True
Boolean("she is "+false) === Boolean("she is false") // 也等于 True


但是:
false? "?":"nt"+" here."
를 반환합니다. 그러면:

"she is "+true === "she is true" //완전히 동일합니다🎜 🎜 그래서 🎜🎜Boolean("she is "+true) === Boolean("she is true") // 같음 True🎜Boolean("she is "+false) === Boolean("she is false") // 또한 True🎜와 같습니다. 🎜🎜하지만: 🎜🎜false? "?":"nt"+" 여기서." false는 부울 값입니다. 🎜그래서 불리언(false) === false🎜그래서 불리언(true) === true🎜
小葫芦

이것은 연산자 우선순위 문제입니다. 우선 +(문자열 연결 연산자)가 ?:(삼항 연산자)는 우선순위가 높으므로 运算符优先级问题. 首先+(字符串连接运算符)优先级比?:(三目运算符)优先级高,所以先执行+运算符.
所以两种情况下,分别得到"she is "+true"she is "+false.
再执行三目元算符,但是"she is "+true"she is "+false(String,除了"")转换成Boolean均为true. 所以三目运算符条件为真,所以得到结果为"?"+ 연산자를 먼저 실행합니다.
따라서 두 경우에서"그녀는 "+true이고 "그녀는 "+false입니다.

삼항 연산자를 다시 실행하지만 " "+true"는 "+false(문자열, "" 제외)가 부울 로 변환됩니다. code>는 모두 true입니다. 따라서 삼항 연산자의 조건이 true이므로 결과는 "?"입니다.#🎜🎜#
我想大声告诉你

으아아아 으아아아

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