<!DOCTYPE html>
<meta charset="UTF-8">
<script>
"use strict" // 엄격 모드 적용
//KGB="KGB"; // 이걸 에러 나게 하는 방법은?
aaa(); // 멋진 말로 호이스팅(hoisting)이라고 함
// 선언부만 위로 끌어올려 자그마한 성능향상을 꾀함
function aaa(){
alert("너구리 이거 실행됨?");
}
//추세가 백엔드를 이해하는 FrontEnd 엔지니어가 돈을 많이 벎
//js를 대체할 언어는 없다
//정리 시작1
//자바스크립트는 동적언어다.
//데이타형이 자동 할당된다
/* null, undefined, array, json
var aaa = "안녕";
alert(typeof(aaa));
var bbb = 272;
alert(typeof(bbb));
var ccc
alert(typeof(ccc));
*/
// ""은 false 그외는 true
// 0은 false 그외는 true
/*
if(""){
alert("사실이얌!!");
}else{
alert("거짓인가봐");
}
*/
/* 암묵적 형변환에 주의
var js="0"; //parseInt를 안쓰고 숫자로 변환하려면?
// alert(js + 111); // 더하기는 2가지 문자열더하기 숫자더하기(문자열 우선)
js = js - 0;
alert(typeof(js));
*/
</script>
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
// JSON(JavaScript Object Notation) - 너무 중요해서 입이 쩍 벌어짐
// 제이슨 스타뎀
// XML(이전 데이터 전송 포맷)
var v_name="반장";
/*
var o_rose = {
name:v_name,
alias:"Gone",
jh:function(){
alert("중호 찍기 왕");
}
}; // 빈 객체(json) 생성
o_rose.jh();
*/
var o_roze = {}
// o_roze.name = v_name;
o_roze["name"] = v_name; // 배열식 표기법, 꼭 알아두어야 함
o_roze["alias"] = "Gone";
// o_roze.alias="Gone";
o_roze.jh = function(p_msg){
alert(this.alias + p_msg);
}
o_roze.jh("왕왕왕"); // ?
// alert(o_rose.name); // 확인 key는 안되는데, value는 변수처리
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>안녕 짱</h1>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<script>
// 복사와 참조 (이걸 모르면 개발자 아님)
var v_aa = 2;
var v_bb = v_aa;
v_bb++;
// alert(v_aa); //? 변화 없음 값의 copy라서
var v_obj1 = {
num: 272
}
// var v_obj2 = v_obj1;
// ++v_obj2.num;
// alert(v_obj1.num) // ? 272, 이것은 참조(reference)
/*
var v_arr1 = [1,2,3];
alert(typeof(v_arr1));
var v_arr2 = v_arr1;
v_arr2[2] = "진석이 만세";
alert(v_arr1[2]); //?
*/
/*
var v_js = "진석";
var v_js2 = v_js;
v_js2 = "만만세";
alert(v_js); //? string은 원시타입이 맞는데, .을 붙여서 사용하는 순간
// 내부적(암묵적)으로 Wraper 객체로 바꿈
*/
var v_js = "진석";
var v_js2 = v_js;
v_js2 = "만만세";
alert(v_js.length); //? string은 원시타입이 맞는데, .을 붙여서 사용하는 순간
// 내부적(암묵적)으로 Wraper 객체로 바꿈
</script>
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
var v_obj = {name:"로제"} // 이런 건 정적(static) 객체
//js에서 function 키워드는 java의 class키워드 역활도 함당!
var MyArray = function(){
this.length=0;
}
MyArray.prototype.push=function(p_val){
this[this.length] = p_val;
this.length = this.length+1;
}
var v_arr1 = []
v_arr1[v_arr1.length] = 1;
v_arr1[v_arr1.length] = 2;
v_arr1[v_arr1.length] = 3;
v_arr1[v_arr1.length] = 4;
alert(v_arr1);
/*
var v_arr = new MyArray(); // 동적객체 생성
v_arr.push(272);
v_arr.push(337);
console.log(v_arr);
alert(v_arr[1]);
*/
</script>