JavaScript, Vue.js, CSS/JavaScript
[JavaScript] 구동 방식, 함수
삶_
2022. 6. 30. 15:29
외부/내부 자바스크립트
//내부 자바스크립트
//html 내부에 직접 적어서 자바스크립트 소환하는 것
<script>
alert('hello world');
</script>
//외부 자바스크립트
//external.js 파일
function printDate() {
alert('hello world');
}
<head>
<script src="../external.js"></script>
<!-- 외부 서버의 js파일 참고인 경우 다음과 같이 사용 -->
<script src="https://www.cdn.com/myjs/external.js"></script>
</head>
자바스크립트의 구동방식
defer
- <head>안에 넣음
<script defer src="자바스크립트파일이름.js"></script>
가장 효율적임 - 선언되지않은 변수를 막기위함
'use strict'; 맨앞에 선언하기
자바스크립트란?
- html의 정적인 정보들 이상으로 동적인 지도나 2D 그래픽 등을 보여주는 언어(사용자와 상호작용 하는것)
알아야 될 것
- // 주석표시
- 세미콜론(;)을 사용하거나 or 사용하지 않아도 되지만 쓰는걸 추천.
- 인터프리터가 자동삽입 해준다고 함
null과 undifined
- null : 값이 아무내용도 없는걸로 정의됬을때
- undifined : 값이 할당(정의)되지 않았음
- Number(null) //0을 뜻함
- Number(’0’) 은 null이 아님. 0이라는 문자임.
- Number(’ ’) 은 안에 공백이 있으므로 true임
- Number(undefined) //NaN(=숫자가 아님)을 말함.
- = 오류문구(Not a number) (숫자가 아닌것을 숫자로 작업했을 때)
- Number(null) //0을 뜻함
- if-else 문에서 0, null이 아니면 true를 반환함 (둘은 false)
console.log()
- 문자열을 출력할 때 사용함
- String 출력
- 문자/문자 했을때 둘다 숫자면 나눠지므로
오류가 발생하지 않도록 조심해야 한다 - 'hello' + 'breadba'; //문자열 더하기
'hello : ${a}' //변수a 와 문자열 같이 출력
- 문자/문자 했을때 둘다 숫자면 나눠지므로
- boolean 출력
- true / false
const a = 3 <1; //false
a === b //같은지 확인하기
- true / false
const / let / var
- 중복선언 X. 함수 내에서 선언되면 외부에서 쓸수없음
- var 빼고 선언,초기화, 할당이 같이 되야함
- 아무것도 설정 없이, a3 = "bb"; 이런식으로 변수선언만 되어 있으면 최상단에 선언된거나 마찬가지 (전역 변수)
- 문제발생할 확률 높음. 에러만 발생 안함.
- 되도록 const/let/var 을 붙여서 만들기
- const : 변수 값 변경이 불가능함
- const elie = {name='elie', age=20};
- let : 변수값 변경이 가능함
- var : 선언하기 전에 사용 가능 (요즘 거의 안씀!)
- 코드 내부에서 선언해도 외부에서 접근 가능(함수 빼고)
- 보통 함수 내, 코드 내부에서 사용
var name2; //선언과 초기화가 동시에 됨 let name = 'enbin' //선언 및 할당(선언만 X) //let을 안붙이고 선언해야 재할당이 가능함! name = 'haeji' console.log(name) // haeji 출력됨
forEach()
- 함수처럼 돈다
- 배열의 모든 원소에 대해 특정 코드블럭을 실행 가능
//배열안의 모든 요소 출력됨
let d = [1,2,3,4];
d.forEach(function(){
console.log(data);
});
for-in / for-of
- 객체의 모든 열거 가능한 속성에 대한 반복
for(let index in d){ //index 인덱스 출력
console.log("in f: "+ f+","+d[f]);
}
for(let value of d){ //value 값 출력
console.log("of f: "+ f);
}
typeof
- 변수의 데이터 타입을 반환함
- number, string …
- typeof 3 하면 number 뜸
- 타입이 정해지지 않아있으면 undefined 뜸
- typeof b == "undefined" //값의 타입을 알아볼때는 스트링으로 변환해서 해야 함
- typeof의 결과값은 string 이므로
alert
- alert("우리집 \n 강아지") //줄바꿈 해서 입력됨
- 사용자가 확인을 누를때까지 메세지를 띄워줌
- ex, 경고창같은거
- 확인 = true, 취소 = false
prompt
- 두개의 매개변수를 받아, 사용자가 입력한 값을 받아옴
- result = prompt(title, ‘’)
- result = prompt(사용자에게 보여줄 문자열, 입력 필드의 초깃값)
confirm
- 매개변수로 받은 question과 확인 및 취소버튼이 있는 창을 보여줌
- confirm(’question 입력’)
- 확인 = true, 취소 = false
String() : 문자형으로 변환
Number() : 숫자형으로 변환
Boolean() : 불린형으로 변환
기본연산자
- % 홀수짝수구할때사용 나머지
- 거듭제곱 **
- 증가연산자 ++
- 감소연산자 --
- a-- (대입후 연산) --a (연산 후 대입)
- 비교연산자
- a != 3, a == 3
일치 연산자
- 타입까지 비교해주는 연산자
- a = 1, b = “1”일 때, a == b는 true이다.a === b (일치연산자) 은 false가 나온다
- ===은 객체 주소도 같아야 함
- 0 == false (true)
0 === false (boolean타입이 아니라서 false)
'' == false (true)
'' == false (false)
null == undefined (true)
null === undefined (false)
- 0 == false (true)
조건문
- if문
if(age > 19){
console.log("환영합니다.");
} else if(age === 19) {
console.log("수능 잘 치세요");
} else {
console.log("안녕히가세요.");
}
반복문
- for문
for(let i=0; i<10; i++){
console.log(i+1);
}
- while문
- 조건을 만족하면 계속 반복
while (i<10){
console.log(i);
i++;
}
- do-while문
- 한번만 실행한다
let i = 0;
do {
i++;
} while(i<10)
- continue : 반복문을 멈추고 다음 반복으로 진행
- break : 반복문을 멈추고 빠져나옴
for(let i=0; i<10; i++){
if(i%2 == 0){ //나머지가 0이면 밖으로 빠져나옴(continue)
continue;
}
console.log(i);
}
- switch문
- 케이스가 다양할경우 간결하게 작성할 수 있기 때문에 사용함
let fruit = prompt("무슨 과일을 사고싶나요?"); //사용자 입력 후 switch(fruit){ case '사과' : console.log("100원 입니다"); break; case '바나나' : console.log("200원 입니다"); break; case '멜론' : //두가지 다 해보기 case '수박' : console.log("500원 입니다."); default : //그 외 console.log("그런 과일은 없습니다."); } //위를 실행
논리연산자
|| (or) , && (and) , ! (NOT)
- &&가 || 보다 우선순위임.
- && 쓸때 먼저 연산될 조건이 잘 일치하지않을 (확률이 적은) 것을 적으면 더 결과가 빨리 나와 좋다