개발
[Javascript] 기초1
yun000
2024. 12. 9. 17:51
<변수>
var 어디에서 쓰여도 전역 변수. 단 함수내에서 선언되었을 경우 함수 밖에서는 사용 불가
let 지역 변수. 블록 단위의 로컬 변수
const 변경 불가한 변수
<!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>
<script>
//전역 변수 선언 (java는 전역 변수가 없다)
var var1=1;
let var2=2;
const var3=3;
var1=10;
var2=20;
//var3=30;//error. you cant change const variable.
//var, let 변수의 유효 범위 차이 존재
if(true)
{
//var는 전역변수. 전체에서 사용 가능
let var5=6; //let은 local변수. 선언된곳 안에서만 사용 가능
var4=50;
var var4=5
var5=60;
}
var4=500;
var5=600;//var var5와 동일. 새로운 전역 변수 선언. let var5와 다른 것이다.
console.log("var4: "+var4);
console.log("var5: "+var5);//var5 is not defined error
</script>
<script>
function func1()
{
if(true)
{
var var6=7;//함수단위의 local 변수
let var7=8;//블록 단위의 local 변수
const var8=9;//블록 단위의 local 변수
console.log("var6:"+var6);//가능
console.log("var7:"+var7);//가능
console.log("var8:"+var8);//가능
}
console.log("var6:"+var6);//가능
console.log("var7:"+var7);//error
console.log("var8:"+var8);//error
}
console.log("var6:"+var6);//error
func1();
</script>
</body>
</html>
+) 자바는 전역 변수가 없다. 필드는 전역변수아님
<비교 연산자 , 논리 연산자>
== != 같은지 비교
=== !== 값이 같고, type도 같은지 비교
&& 왼쪽이 true이면 오른쪽 값 반환
|| 왼쪽이 true이면 오른쪽 값 보지 않고 true반환
|| 왼쪽이 false이면 오른쪽 값 반환
<!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>
<script>
//비교 연산자=======================
let var1=10;
let var2="10";
//value 검사
console.log("var1==var2",var1==var2);//true
console.log("var1!=var2",var1!=var2);//false
//type,value 검사
console.log("var1===var2",var1===var2);//false
console.log("var1!==var2",var1!==var2);//true
//논리 연산자========================
var var3=true;
var var4=false;
console.log("var3&&var4",var3&&var4);//false (and)
console.log("var3||var4",var3||var4);//true (or)
var var5=var3 && "홍길동"; //&&는 앞에가 true이면 뒤에 값 반환
var var6=var4 && "홍길동";
console.log(var5);//홍길동 반환.
console.log(var6);//false 반환
var var7=var3||"홍길동";//앞의 것이 true이면 뒤에 것을 보지 않음
var var8=var4||"홍길동";//앞의 것이 false이면 뒤에 값 반환
console.log("var7=",var7);//true반환
console.log("var8=",var8);//false 반환
</script>
</body>
</html>
<type>
함수 선언 방법
let func1=function(){};
function func2(){}
let func3= ()=>{};
let func4= function(){};
타입 확인 number, string,object, function등...
<!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>
<script>
let var1=1;
let var2="1";
let var3={};//객체 표현
let var4=[];//배열 list
//함수(객체)
let var5=function(){};//함수(객체), function var5(){} 이것과 같다.
function var6(){}
let var7=var6;
var5();
var6();
var7();
//Arrow function (람다식)
let var8=()=>{};//var5,var6와 같다
let var9=function(){};
//type확인 typeof
console.log("var1타입=",typeof var1);//number
console.log("var2타입=",typeof var2);//string
console.log("var3타입=",typeof var3);//object
console.log("var4타입=",typeof var4);//object
console.log("var5타입=",typeof var5);//function
console.log("var6타입=",typeof var6);//funcion
console.log("var7타입=",typeof var7);//function
</script>
</body>
</html>
<함수>
매개변수 값을 전부 다 주지 않아도 되고
기본 값을 넣어줘도 된다.
<!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>
<script>
function func1()
{ console.log("func1 실행"); }
func1();
const func2=(x,y,z=7)=>
{ console.log("func2 실행",x,y,z); };//z=7이 기본값
func3();//값 안줘도 되고
func1(13);//값 하나만 줘도 됨
func2(3,5,6);
const func4=(x,y,z=7)=>{console.log("func",x,y,z)};
func4();//func undefiend undefined 7
func4(3);//func 3 undeifiend 7
func4(3,5);//func 3 5 7
func4(3,5,6);//func 3 5 6
</script>
</body>
</html>
<세미콜론>
자바스크립트는 세미콜론을 안붙여도 되지만
컴파일러 에게 알려주기 쉽고 가독성 있으니 붙여라