테스트 사이트 - 개발 중인 베타 버전입니다

스크립트 function 질문입니다. 채택완료

아기새 7년 전 조회 2,298

</p>

<p>function Test ($aaa, $bbb = null) {</p>

<p>~~~</p>

<p>}</p>

<p>

 

 

여기서 인자값 $bbb = null

이렇게 하면 에러인가요?

 

이렇게하니깐 크롬에서는 되는데 익스에서는 에러라고 뜨네요..

 

PHP에서는 이거 맞는거잖아요..

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
7년 전

php 문법과 javascript 문법이 비슷한 부분이 있기는 하지만,

전부 같지는 않습니다.

 

php 에서는 파라미터의 기본값을 줄 수 있는 방법이 본문의 코드와 같이 가능하지만,

javascript 에서는 지원하지 않습니다.  (ES6 default function params 지원 웹브라우저에서는 가능하다고 합니다.)

 

javascript 에서 php 함수와 유사한 방식의 기본값을 주는

방법과 관련된 참고글입니다. http://blog.freezner.com/archives/818

 

https://appletree.or.kr/blog/web-development/javascript/javascript-function%EC%9D%98-default-parameters-%EC%84%A4%EC%A0%95-%EB%B2%95/

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아기새
7년 전
감사합니다^^!

댓글을 작성하려면 로그인이 필요합니다.

플래토
7년 전

변수명을 혼용하시는거 같아보입니다.

 

IE , 크롬에서 보신다고 하는것으로 보아

 

JavaScript를 말씀하시는거죠?

 

물론 $변수를 사용할수있습니다만

 

 

PHP의 $와 다릅니다.

 

그리고,

 

function Test($aaa, $bb = null ) {

 

}

 

와 같이 사용할경우는 없습니다.

 

JavaScript에서 값이 없는것은 null이 아닌

undefined 입니다.

따라서 굳이 null로 넣지 안않아도 그 자체가 undefined 가 되서

 

null로 체크됩니다.

 

이런 이유와 마찬가지로 IE에서는 넣을수 없는값으로 인식되는것으로 보여집니다.

 

크롬/파이어폭스에서는 

 

http://beomy.tistory.com/17

 

아래의 내용에따라

 

null을 인자로 전달할경우 null 자체가 의미하는 null로 인식해서 처리합니다.

 

 

은 

 

값을 1개만 전달하기도 2개를 전달하기도 하는경우에는

 

function Test($aaa, $bb ) {

 

}

 

으로 처리하시면 정상적으로 처리되실겁니다.

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아기새
7년 전
감사합니다 !!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인