[JS] 여러 대입 함수의 변수를 기술할 때 주의사항

7099 단어 JavaScript
Boolean의 함수를 변수의 처리에 대입하여 여러 조건(&&이나 ||을 설정할 때 기술한 주의사항을 설정합니다.

정확한 기술


여러 개의 진위 값을 설정한 경우 다음과 같이 매개 변수를 명시하고 쌍방에게 각각 전달하는 변수가 필요하다.
OK 사례
moreThanOne = ({arr}) => arr.length > 1
lessThanThree = ({arr}) => arr.length < 3

//正常な記述
judgeOK = (params) => lessThanThree(params) && moreThanOne(params)
이것은 파라미터를 기술하지 않고 변수를 연결하면 의도하지 않은 결과가 된다.
NG 사례
//間違った記述
judgeNG = lessThanThree && moreThanOne

왜 의도하지 않은 결과가 됐을까?


NG 사례
judgeNG = lessThanThree && moreThanOne
이 식은less탄 Three의 결과와moreThanne의 결과를 &로 연결하는 것이 아니라 변수 자체를 연결하는 것이다.
만약 전자가 진짜/가짜가 아니라면, & & & 뒤에 있는 값을 되돌려줍니다.
따라서 상술한 식은 judgeNG = moreThanOne과 같다.
▶ 비진실/거짓 사례

▶ 확인용 코드

arr = [1,2,3,4,5]

moreThanOne = ({arr}) => arr.length > 1
lessThanThree = ({arr}) => arr.length < 3

//意図しない動き
judgeNG = lessThanThree && moreThanOne
console.log( judge({arr}) ) //true

//意図した動き
judgeOK = (params) => lessThanThree(params) && moreThanOne(params)
console.log( judge({arr}) ) //false
위에서 말한 바와 같이 파라미터를 기술하지 않은 상황에서 후방의 moreThanne만 평가하는 것은lessThanThree가 무시된 결과가 되었다.
다른 한편, 매개 변수를 묘사한 상황에서 되돌아오기true && false = false.

파람스는 무엇입니까?


params는 모든 전달된 매개 변수를 표시합니다.매개 변수 이름은 임의이기 때문에 파라메스 이외에도 문제가 없습니다.
arr = [1,2,3,4,5]

moreThanOne = ({arr}) => arr.length > 1
lessThanThree = ({arr}) => arr.length < 3

judge = (o) => lessThanThree(o) && moreThanOne(o)

console.log( judge({arr}) )
//false
위의 경우o에는 {arr}가 포함됩니다.

변수가 일 경우


하나의 변수 상황에서 매개 변수를 전달하지 않아도 의도적으로 운동하는 것도 혼란을 초래하는 원인이다
moreThanOne = ({arr}) => arr.length > 1

//意図した動きになる
judge = moreThanOne
judge({arr})
이것은judge가morethanOne에 저장된 변수 자체가 되기 때문에 매개 변수를 교부하지 않아도 진가를 되돌려줍니다.judge = moreThanOne     ↓↑judge = ({arr}) => arr.length > 1

좋은 웹페이지 즐겨찾기