반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 상관서브쿼리
- String char[] 형변환
- 스레드그룸
- Linux세팅
- 표현 언어
- MemoryStream
- ID중복
- include 지시자
- interrupted()
- isinterrupted()
- Linux셋팅
- 메모리스트림
- InputDialog
- 동기화
- include지시자
- first-child
- 리눅스세팅
- ObjectInputStream
- first-of-child
- sleep()메소드
- char[] String 형변환
- 상관 서브 쿼리
- Daemon()
- ThreadGroup()
- interrupt()
- 아이디중복
- StringReader
- 리눅스셋팅
- StringWriter
- include액션태그
Archives
- Today
- Total
다연이네
[days02] js 변수(함수를 변수에 담을때, 지역변수, 전역변수) 본문
반응형
함수를 변수에 담을 때
1) 함수 자체를 변수에 담는 경우 (자료형: function)
2) 함수의 return값을 변수에 담는 경우 (자료형: number)
<script>
function sum(a,b) {
var result = a+b;
return result;
}
var fn = sum; //함수 자체를 fn 변수에 담음 (자료형: function)
console.log(fn(3,4)); //7
var fn2 = sum(5,6); //return 값을 받음 (자료형: number)
console.log(fn2); //11
</script>
전역변수와 지역변수
- 함수밖에서 변수를 선언하면 var과 상관없이 무조건 전역변수가 되고
- 함수안에서는 var가 있으면 지역변수, 없으면 전역변수이다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
var a; //전역변수
</script>
</head>
<body>
<button onclick="fn1()"> btn 1</button>
<button onclick="fn2()"> btn 2</button>
<script>
var a; //전역변수
function fn1() {
//var a="100"; //a변수는 함수 내에서만 사용하는 지역변수
a=150;
name="admin"; //변수선언없이 바로 값 할당
alert(a+"/"+name); //var선언 안함 => 전역변수
//js는 변수를 var키워드로 선언하지 않고 사용 가능
}
function fn2() {
alert(a+"/"+name);
//btn 1 을 누르고 난 후 btn 2를 누르면 값이 뜨고
//btn 1을 누르지 않은 상태라면 undefined이 뜸
//만약 전역변수 값으로 undefinded 대신 200이 있었다면, 200이 먼저 뜨고
//btn1을 누른 다음에야 150이 뜬다
}
</script>
<script>
var a; //내부적으로 위로 올린다 (그래서 위에 선언하던 아래 선언하던 상관 없음)
age=20; //var 없어도 전역변수
//함수밖에서는 var쓰든안쓰든 전역이고
//함수안에서는 var쓰면 지역 안쓰면 전역
</script>
</body>
</html>
var x =10 / ""/ true
var x = new Number() / new String() / new Boolean =>자료형은 object
둘의 차이
<script>
var x =10; //number
var x = new Number(); //number형 만들 수 있음 (그러나 이렇게 쓰진 않음)
var y = "string";
var y = new String(); //이렇게 문자형 만들수 있으나 이리 쓰지는 않음
var z = true;
var z = new Boolean(); //얘도 안써 (성능 떨어짐)
Number, String, Boolean은 자바로 치면 클래스(객체)
number, string, boolean랑 다른 것(얘넨 typeof 연산자)
</script>
var name1 = "kenik";
var name2 = new String("kenik");//찍히긴 하는데 권장하지 않음(성능 하락)
console.log(name1 ==name2); //true
console.log(name1 ===name2); //false 자료형 string != object
//자바에서도
//String name = "admin";
//String name = new String("admin"); 해도 되지만.. 잘 안쓰듯..
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<script>
var car = "bmw"; //string
var car = {name:"bmw"
, model:525
, color:"red" //필드
//메소드 안에 있는 this는 소유 객체를 나타낸다.
, info : function(){ //메소드
return this.name+"/"+this.model+"/"+this.color;
}
}; // 중괄호 : 객체
//alert(typeof car); //object
console.log(car.name); // 객체명.필드명(속성명) 필드=property
console.log(car["model"]); //이렇게 해도 됨
console.log(car.info());
var fndisp = car.info; //괄호가 없으면 그 함수 자체를 변수안에 담겠다는 뜻 자료형:function
//console.log(fndisp()); 결과가 이상하게 나온다 왠 admin
</script>
</body>
</html>
반응형
'Web > JavaScript' 카테고리의 다른 글
[days03] 문제 (0) | 2020.12.11 |
---|---|
[days02] 문자열 메소드 (0) | 2020.12.10 |
[days02] js 자료형(data type) (0) | 2020.12.10 |
[days02] js 연산자 (0) | 2020.12.10 |
[days02] js 위치와 기본 특징 (0) | 2020.12.10 |
Comments