▶이동
  • 상구너 닷컴 블로그를 방문하신 여러분을 환영합니다 :)
  • 스팸 정책에 의해 일부 덧글·방명록차단될 수 있습니다.

클로저 특성으로, 내부함수에서 외부함수의 지역변수에 접근 할 수 있는데, 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. -> 함수 안의 내부함수나 그 로컬 변수들은 그 외부함수의 밖에서 접근을 못한다. 


잘못 작성된 코드

결과

그러면 왜 5만 5번이 출력이 되었을까?


=>

클로저의 특성인 내부함수에서 외부함수의 지역변수에 접근을 하는것인데 arr[i] 로 정의된 함수에서 사용하는 i는 외부함수의 지역변수가 아니다.

arr[i] 는 i를 리턴하는 함수로만 사용이 되는데, 이 i 가 외부함수의 지역변수가 아니기 때문에 for문을 이미 종료된 상태인 i = 5 인 상황이 되어버리기 때문이다.

고쳐진 코드

결과


=>

for문을 돌때 미리 i를 이용한 외부변수를 실행하여(실행후 소멸됨) 각각 arr[i]는 실행된 외부함수로부터 반환된 내부함수가 되기 때문에 다른방식의 결과가 나오기 때문이다.


참고 https://opentutorials.org/course/743/6544

'Study > JavaScript' 카테고리의 다른 글

Canvas Context 메소드 확장하기.  (0) 2016.05.10
_h5ai audio,video autoplay  (0) 2014.09.29

display,visibility 속성 정리

Study/Markup 상구너(sanguneo) 2017. 1. 5. 13:54

display 속성


display: inline  기본값으로, 요소를 inline 요소처럼 표시합니다. => 앞뒤로 줄바꿈 되지 않습니다.

 

display: block  요소를 block 요소처럼 표시합니다. => 따라서 요소 앞 뒤로 줄바꿈 됩니다

 

display: none 박스가 생성되지 않습니다. => 따라서 공간을 차지하지도 않습니다.

 

display: inline-block 요소는 inline인데 내부는 block 처럼 표시함.  => 즉, 박스 모양이 inline 처럼 옆으로 늘어섬.





visibility 속성



visibility: visible  기본값으로 요소가 그대로 보입니다.visibility: hidden  요소가 보이지 않지만, 여전히 그 공간을 차지하며 투명하게 남습니다.

visibility: collapse <table> 태그에서만 사용할 수 있는 값으로, 선택 테이블의 행과 열을 숨깁니다.

 

하지만 여전히 투명하게 공간을 차지 합니다. 

<table> 이외에서 사용하면 hidden 상태처럼 만듭니다. 

(collapse는 IE, Firefox에서만 작동)


참고 : http://aboooks.tistory.com/85

'Study > Markup' 카테고리의 다른 글

display: inline-block 여백이 생기는 현상  (0) 2017.01.05

display: inline-block 여백이 생기는 현상

Study/Markup 상구너(sanguneo) 2017. 1. 5. 13:51

1. 문제 발생 (예제)

1000px 로 설정한 div

다시 150px, 700px, 150px 로 나누고

안쪽의 div에는 display: inline-block 속성을 주었는데

맨 오른쪽 div 영역이 아래쪽으로 밀려내려감

*** divpaddingmargin, border는 모두 0px 이었음

 

2. 원인

<div> 태그 등으로 다른 태그들을 묶어주는 경우,

div 태그 또한 inline-element로 인식을 하기 때문에

div들끼리 마주하는 부분에서 여백이 생김

div 뿐만아니라, span도 마찬가지

 

3. 해결 방법

1)

.container { // 부모 랩퍼

...

font-size: 0px;

letter-spacing: 0px;

word-spacing: 0px;

}

 

.container > div { // 간격이생기던 엘리먼트

...

font-size: 15px;

letter-spacing: 1em;

word-spacing: 2em;

}

 

감싸고 있는 divfont-size, letter-spacing, word-spacing0px로 줄임 ->

안쪽의 div에서 복구.

 

2)

.container > div { // 간격이생기던 엘리먼트

...

float:left;

}


참고


http://comajava.blogspot.kr/2013/12/display-inline-block-width-margin-css.html


'Study > Markup' 카테고리의 다른 글

display,visibility 속성 정리  (0) 2017.01.05
1