정보정보
111
2019-06-24 10:36:52
5
235

자바스크립트 파라미터 강제 형변환 막는법이 궁금합니다..


var 파라미터 = '0123'; //파라미터,toString, + '' , String(파라미터) 등등 전부 시도 


funtion 실행부를 건들수 없는 공통처리함수 (파라미터){

무언가의 로직();

return 파라미터;

}


실행부를 건들수 없는 공통처리함수(파라미터); //여긴 건들 수 없음 

// 결과 : 123으로  0 사라짐 


자바스크립트에서 파라미터에 문자형이건 뭐건 숫자 조건만 충족하면 숫자로 바꿔버려서 이러는것 같은데

위와 같은 코드에서 0을 살리고 싶습니다..


자바같은경우에는 메서드나 함수의 파라미터에 타입을 지정하여 위와같은 데이터손실을 막을 수 있었는데


자바스크립트에서도 가능할지 궁금해서 올려봅니다 ㅠ



0
0
  • 답변 5

  • moonti
    2k
    2019-06-24 10:42:12

    자바스크립트에서 형변환 안합니다. 

    그 실행하는 함수 내부에서건들겟죠 

    2
  • 쏭성
    78
    2019-06-24 10:56:33

    moonti님 말씀대로 함수 내부에서 건들고 있을 것 같네요

    '+' 는 string이 우선이지만 빼기, 곱하기 나누기 등 다른 연산자는 int가 우선순위 갖기에 형변환합니다.

    함수 내부에서 연산자 사용하는거 있는지 확인해보세요~

    1
  • Keloper245
    972
    2019-06-24 11:00:57 작성 2019-06-24 11:02:57 수정됨
    1
  • 야근냥
    82
    2019-06-24 11:05:38

    무언가의 로직에서 숫자 데이터로 변환해서 작업 처리가 이루어 지는것 으로 보이는데요. 그 부분부터 확인을 해보시는게 좋겠습니다.


    만약 설사 데이터 형식 변환을 유지 할 수 있다 고해도  함수내부에서 데이터를 넘버 타입으로 변경한후 로직처리가 필요한 부분이 있다고 하면 그건 그거대로 문제가 될 것입니다.


    정 반드시 필요하되 내부함수를 수정이 절대 불가 하다면, 함수 실행전 파라미터 앞에 붙어있는 0의 갯수를 미리 알아내서 돌려받은 리턴값에 다시 붙어넣어서 사용할수밖에는 없어 보입니다.


    1
  • 정보정보
    111
    2019-06-24 11:16:55

    다들 답변 감사합니다! 아무래도 로직쪽을 더 알아봐야겠네요 ㅠㅠ


    예시라고 올려놓은거 콘솔에서 해보니 엄한 자바스크립트 붙들고 낑낑대고 있었네요 ㅋㅋ.. 감사합니다



    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.