0)
C언어..가 한참 version 이 올라가고 있을 때,
아직도 초창기 C언어에만 매달려 있는 입장이라..

.. 생각난 김에 적어봅니다.
(하도 글을 안적은 김에.. 한점 찍는 셈 치고..)

...

1)

<script>
function testing20110915_1() {
  function returnValue(v) { return v+' '; }

  var outv='', i=0;

  outv+=returnValue(i++)+returnValue(i++);
  outv+=' / ';
  outv+=returnValue(++i)+returnValue(++i);

  return outv;
  }
</script>
<input type="button" onclick="this.value=testing20110915_1();" value="눌러보세요. 테스트 함수 결과값을 보여줍니다."/>


...




...

대충 이런 결과값은 '0 0 / 4 4' 가 나오게 된다..라고 생각을 했습니다만,

*테스트 : IE8 편집중 미리보기*
OTL.. '0 1 / 3 4' 군요.. 비슷한 테스트 하나 더 해봐야겠습니다.

...

2)

<script>
function testing20110915_2() {
  var outv='', i=0;

  outv+=(i++)+' '+(i++)+' ';
  outv+=' / ';
  outv+=(++i)+' '+(++i)+' ';

  return outv;
  }
</script>
<input type="button" onclick="this.value=testing20110915_2();" value="눌러보세요. 테스트 함수 결과값을 보여줍니다."/>


...





...

역시 결과값은 위와 같네요.
'0 1 / 3 4 ' 가 나왔습니다.

i++ 이후의 결과값으로 넘기느냐 마느냐..의 우선순위이지,
한줄 내의 연산 우선순위가 아니라는 것을 알 수 있었습니다.

...

3)
OTL.. 이거 참.. 이거 몰랐으면
트릭처럼 썼다가 버그로 남을 뻔 했군요..

실험할 생각을 했다는 사실에 안심을 해봅니다.

smallLet killofki@.

Posted by killofki
,