찾다

 >  Q&A  >  본문

javascript - JS 삼항 연산자에 대한 질문

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

으아악
으아악

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

으아악
으아악

해결책이 필요하신가요?

天蓬老师天蓬老师2778일 전657

모든 응답(3)나는 대답할 것이다

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:19:40

    첫 번째:
    삼항 연산자가 무엇인가요?
    {1} ? {2} : {3} ;
    JS 엔진은 True인 경우 먼저 Boolean({1})을 실행한 다음 {2를 반환합니다. }< /code>, 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🎜

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-19 10:19:40

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

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

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:19:40

    으아아아 으아아아

    회신하다
    0
  • 취소회신하다