认证高级PHP讲师
제공하신 코드로 판단하면 현재 사용 시나리오에서는 문자열 유형에 값을 미리 할당할 필요가 없습니다. 미리 설정하지 않으면 잘못될 수 없습니다.
그러나 값을 지정하지 않는 것과 빈 문자열을 지정하는 것에는 본질적인 차이가 있습니다. 즉, 변수의 유형이 변경됩니다.
할당이 이루어지지 않은 경우 정의되지 않은 유형이고, 값이 null인 경우 null 유형이며, 값이 빈 문자열 ""인 경우 문자열 유형입니다.
안전을 위해 이 변수의 예상 결과는 문자열 유형이므로 선언할 때 해당 유형을 지정하는 것이 안전한 방법입니다.
지정하지 않으면 어떻게 되나요? 그것은 때때로 문제를 야기합니다.
이 변수를 사용하여 다른 데이터를 연결할 때 주로 발생하는 문제는 암시적 유형 변환을 유발할 가능성이 높으며 차이점을 찾을 수 있습니다.
다음과 같습니다:
그래서 결과는요? "a"가 아니라 "정의되지 않음"입니다.
기본적으로 a가 null로 설정된 경우 결과는 "nulla"입니다.
예제에서는 res를 splicing하지 않고 직접 할당하기 때문에 빈 문자열에 할당하지 않아도 상관없지만 권장하지는 않습니다.
또 다른 예는 "0123456789"와 같이 원하는 것이 문자열인 경우 0-9의 숫자를 연결하는 것입니다.
신고하지 않아도 괜찮나요? 아니요, res는 숫자 유형으로 변환되지만 정의되지 않은 것은 변환 후 NaN이며, 최종 결과도 NaN입니다.
res에 "" 빈 문자열 값이 할당된 경우에만 정확합니다.
현재 사례는 빈 문자열로 미리 정의할 필요가 없으며 코드 가독성을 높이기 위해 삭제할 수 있습니다
빈 문자열은 일반적으로 문자열에 대해 조건부 판단 연산이 수행되거나 자체적으로 연산되는 시나리오에서 사용됩니다. 첫 번째 유형:
두 번째 유형:
으아악
개인적으로는 작가님의 의도치 않게 이런 일이 벌어졌다고 생각합니다...
꼭 해석을 고집한다면 이것은 좋은 것일 수도 있고 나쁜 것일 수도 있습니다. 좋은 점은 res가 문자열 변수라는 것을 직관적으로 인식할 수 있어 가독성이 높아지는 점이고, 나쁜 점은 객체 생성 및 해제 과정이 추가로 필요하고 손실은 미미하더라도 성능 저하가 있다는 점입니다.
제공하신 코드로 판단하면 현재 사용 시나리오에서는 문자열 유형에 값을 미리 할당할 필요가 없습니다. 미리 설정하지 않으면 잘못될 수 없습니다.
그러나 값을 지정하지 않는 것과 빈 문자열을 지정하는 것에는 본질적인 차이가 있습니다. 즉, 변수의 유형이 변경됩니다.
할당이 이루어지지 않은 경우 정의되지 않은 유형이고, 값이 null인 경우 null 유형이며, 값이 빈 문자열 ""인 경우 문자열 유형입니다.
안전을 위해 이 변수의 예상 결과는 문자열 유형이므로 선언할 때 해당 유형을 지정하는 것이 안전한 방법입니다.
지정하지 않으면 어떻게 되나요? 그것은 때때로 문제를 야기합니다.
이 변수를 사용하여 다른 데이터를 연결할 때 주로 발생하는 문제는 암시적 유형 변환을 유발할 가능성이 높으며 차이점을 찾을 수 있습니다.
다음과 같습니다:
으아악그래서 결과는요? "a"가 아니라 "정의되지 않음"입니다.
기본적으로 a가 null로 설정된 경우 결과는 "nulla"입니다.
예제에서는 res를 splicing하지 않고 직접 할당하기 때문에 빈 문자열에 할당하지 않아도 상관없지만 권장하지는 않습니다.
또 다른 예는 "0123456789"와 같이 원하는 것이 문자열인 경우 0-9의 숫자를 연결하는 것입니다.
으아악신고하지 않아도 괜찮나요? 아니요, res는 숫자 유형으로 변환되지만 정의되지 않은 것은 변환 후 NaN이며, 최종 결과도 NaN입니다.
res에 "" 빈 문자열 값이 할당된 경우에만 정확합니다.
현재 사례는 빈 문자열로 미리 정의할 필요가 없으며 코드 가독성을 높이기 위해 삭제할 수 있습니다
빈 문자열은 일반적으로 문자열에 대해 조건부 판단 연산이 수행되거나 자체적으로 연산되는 시나리오에서 사용됩니다.
으아악첫 번째 유형:
두 번째 유형:
으아악으아악
개인적으로는 작가님의 의도치 않게 이런 일이 벌어졌다고 생각합니다...
꼭 해석을 고집한다면 이것은 좋은 것일 수도 있고 나쁜 것일 수도 있습니다. 좋은 점은 res가 문자열 변수라는 것을 직관적으로 인식할 수 있어 가독성이 높아지는 점이고, 나쁜 점은 객체 생성 및 해제 과정이 추가로 필요하고 손실은 미미하더라도 성능 저하가 있다는 점입니다.