충격적인 자바스크립트 문법을 보았다...

 

        if(x !==3){
            console.log(y);
            var y = 5;
            if(y === 5){
                var x =3;
            }
            console.log(y);
        }
        if(x ===3){
            console.log(y);
        }

이문법을 보고 console.log(y) 에서 오류가 발생할꺼라고 생각했지만. 이문법은 아래와 같이 해석된다.

 

        var x;
        var y;
        if(x !==3){
            console.log(y);
            var y = 5;
            if(y === 5){
                var x =3;
            }
            console.log(y);
        }
        if(x ===3){
            console.log(y);
        }

애초당시 처음 선언했던것처럼 코드를 짜면 안되지만.. 호이스트를 확인하기 위해서.. 보았다..

 

        f();
        function f(){
            console.log(f);
        }

함수역시..

 

         function f(){
            console.log(f);
        }
        f();

 

자료형 종류 예제
수(Number) 정수

76,197,750,

-11,

-234

실수(고정소수점)

3.14,

-2.717,

45.78

실수(부동소수점)

1e4, 

2.5e34,

5.67e-9,

7.66E-3

문자열 문자열

"1234"

"true"

"apple-run"

"사랑"

"\"JSP\""

제어문자

\b (백 스페이스)

\f (폼 피드)

\n (개행)

\r (캐리지 반환)

\t (탭)

\" (따움표)

\/ (슬래시)

\\ (역슬래시)

배열

배열은 대괄호[ ] 로 나타냅니다

배열의 각 요소는 기본 자료형이거나 배열, 객체입니다.

각 요소들은 쉼표 , 로 구분합니다

"name" : ["홍길동","이순신","임꺽정"]

// 대괄호 안에 배열 요소를 콤마 , 로 구분해서 나열합니다.

객체

JSON 개게는 중괄호 {}로 둘러싸서 표현합니다.

쉼표 , 를 사용해 여러 프로퍼티를 포함 할 수 있습니다.

{

   "name" : "홍길동",

   "age" : 16,

   "weight" : 67

}

// 중괄호 안에 name/value 쌍을 콤마로 구분해서 나열합니다. 

popupTest.html

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<script type="text/javascript">
window.onload = pageLoad;
function pageLoad(){
	notShowPop = getCookieValue();
	if(notShowPop != "true"){
		window.open("popUp.html","pop","width=400,height=500,history=no,resizable=no,status=no,scrollbars=yes,menubar=no");
		
	}
}

function getCookieValue(){
	var result="false";
	if(document.cookie != ""){
		cookie = document.cookie.split(";");
		for(var i=0; i<cookie.length;i++){
			element = cookie[i].split("=");
			value=element[0];
			value=value.replace(/^\s*/,'');
			if(value =="notShowPop"){
				result = element[1];
			}
		}
	}
	
	return result;
}

function deleteCookie(){
	document.cookie = "notShowPop=" + "false" + ";path=/; expires=-1";
}

</script>
</head>
<body>
	<form>
		<input type=button value="쿠기삭제" onClick="deleteCookie()">
	</form>
</body>
</html>

 

popUp.html

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<script type="text/javascript">
	function setPopUpStart(obj){
		if(obj.checked == true){
			var expireDate = new Date();
			expireDate.setMonth(expireDate.getMonth() +1);
			document.cookie = "notShowPop="+"true" + ";path=/; expires="+expireDate.toGMTString();
			
			window.close();
		}
	}
</script>
</head>
<body>
	<form>
		<input type=checkbox onClick="setPopUpStart(this)">오늘 더이상 팝업창 띄우지 않기
	</form>
</body>
</html>

 

'프로그래밍언어 > JavaScript' 카테고리의 다른 글

ES6 자바스크립트 호이스트  (0) 2020.03.06
json 자료형  (0) 2020.02.26
자바스크립트 slice 요소 복사  (0) 2018.11.14
자바스크립트 splice 배열요소 삭제  (0) 2018.11.14


var Users=[{name:'소녀시대',age:20},{name:'걸스데이',age:22},{name:'티아라',age:23},{name:'애프터스쿨',age:25}];


console.log('배열 요소의 수 : %d',Users.length);

console.log('원본 Users');

console.dir(Users);


var Users2 = Users.slice(1,3);


console.log('slice() 로 잘라낸 후 Users2');

console.dir(Users2);


var Users3 = Users2.slice(1);


console.log('slice() 로 잘라낸후 Users3');

console.dir(Users3);


출력 결과:


배열 요소의 수 : 4
원본 Users
[ { name: '소녀시대', age: 20 },
{ name: '걸스데이', age: 22 },
{ name: '티아라', age: 23 },
{ name: '애프터스쿨', age: 25 } ]
slice() 로 잘라낸 후 Users2
[ { name: '걸스데이', age: 22 }, { name: '티아라', age: 23 } ]
slice() 로 잘라낸후 Users3
[ { name: '티아라', age: 23 } ]




1




var Users=[{name:'소녀시대',age:20},{name:'걸스데이',age:22},{name:'티아라',age:23}];

console.log('delete 키워드로 배열 요소 삭제 전 배열 요소의 수 : %d',Users.length);



delete Users[1];



console.log('delete 키워드로 배열 요소 삭제 후');

console.dir(Users);


Users.splice(1,0,{name:'애프터스쿨',age:25});

console.log('splice()로 요소 인덱스 1에 추가한후 ')

console.dir(Users)


Users.splice(2,1);

console.log('splice()로 인덱스 2의 요소를 1개 삭제후')

console.dir(Users)


실행후 : 

delete 키워드로 배열 요소 삭제 전 배열 요소의 수 : 3
delete 키워드로 배열 요소 삭제 후
[ { name: '소녀시대', age: 20 },
<1 empty item>,
{ name: '티아라', age: 23 } ]
splice()로 요소 인덱스 1에 추가한후
[ { name: '소녀시대', age: 20 },
{ name: '애프터스쿨', age: 25 },
<1 empty item>,
{ name: '티아라', age: 23 } ]
splice()로 인덱스 2의 요소를 1개 삭제후
[ { name: '소녀시대', age: 20 },
{ name: '애프터스쿨', age: 25 },
{ name: '티아라', age: 23 } ]


1



+ Recent posts