생활코딩에서 자바스크립트 언어에 대한 공부를 시작했다. jquery나 쓸줄 알지 javascript는 걸음마 떼는 기분으로 공부하고 있다^-ㅠ 어쨌든 흥미롭고 재미있다.
1. 숫자와 문자
1) 숫자 : 따옴표 없는 형식
ex) alert (1+1) -> 결과값 2
● +,-,*,/ 등 사칙연산 뿐만 아니라 복잡한 계산도 가능하다.
ex) Math.pow(3,2) -> 3의 2승, 결과값 9
Math.round() 반올림 / Math.ceil() 올림 / Math.floor() 내림 / Math.random() 0부터 1.0 사이의 랜덤한 숫자
2) 문자 : 따움표로 감싸야 한다. String 이라고 함.
ex) alert("Hello World")
● 숫자를 따옴표로 감싸면 문자가 된다
● 문자 안에서 작은따옴표/큰따옴표가 넣고싶은 경우 따옴표 앞에 역슬래시 (\) 를 쓰기. -> 이스케이프 라고 함.
● 여러줄을 표시할때는 줄바꾸는 위치에 \n 을 쓰기.
● 문자와 문자를 더할땐 ("string1"+"string2") 형식.
● 문자의 길이를 구할땐 ("문자".length) 형식
2. 변수 : 값을 담는 박스 개념. 값은 바뀔 수 있음.
● 변수 선언시 var 로 시작. 변수의 이름은 $, _, 혹은 특수문자를 제외한 모든 문자로 시작 가능하다.
3. 비교
1) 비교연산자
● 주어진 값을 비교하는것, 비교 연산자의 결과는 true 혹은 false 중의 하나다.
● == : 동등 연산자. = 가 한개인것은 대입 연산자로 == 와는 완전히 다르다.
● === : 일치 연산자. 좌항과 우항이 정확하게 같을때 true가 된다. === 는 같은 수를 표현하더라도 데이터형이 같아야 한다. == 보다는 ===를 쓰자.
● != , !== : !는 부정을 의미한다. != 는 ==와 정반대이다.
● > , >= , < , <= 크거나 작음을 표시하는 부등호.
4. 조건문 : 주어진 조건의 결과값에 따라 코드가 다르게 실행되는것. 조건의 결과값은 true 혹은 false 만 올 수 있다.
● if (조건) {조건결과가 true인경우 실행되는 코드} else {조건결과가 false인경우 실행되는 코드}
● if (조건) {조건결과가 true인경우 실행되는 코드} else if (또다른 조건){또다른 조건결과가 true인경우 실행되는 코드}
● 조건 부분에는 비교연산자 사용 가능
● 조건문 안에 조건문 중첩해서 사용 가능
● 논리연산자
- && : and 연산자. 좌항과 우항이 모두 true 일때 결과값이 true가 된다.
- || : or 연산자. 좌항과 우항중에 하나라도 true 이면 결과값이 true가 된다.
- ! : not 연산자. 결과값을 역전시킨다.
● 조건문의 조건에 true 혹은 false (불린) 이 아닌 다른 값을 사용할 경우
- 관습적으로 0 은 false , 0 이외의 값은 true로 간주.
- false로 간주되는 데이터형 : !'' , !undefind , !null , !Nan
5. 반복문
● while(조건){반복해서 실행할 코드} -> (조건)의 값이 true 이면 {} 안의 코드를 반복적으로 실행하고, false면 실행하지 않는다. true와 false는 '종료조건' 이다.
● for (초기화; 반복조건; 반복될 때마다 실행되는 코드){반복해서 실행될 코드}
● 반복문의 제어
- break : 반복문 안에서 break가 실행되면 반복문을 즉시 종료.
- continue : 어떠한 조건에서 continue를 실행하면 그 조건일 때에는 반복 실행은 중단되지만 반복문 자체는 중단되지 않는다.
● 반복문 안에서 반복문 사용 가능.
6. 함수
function 함수명(인자){
코드
return 반환값
}
함수명 ();
혹은
var 변수이름 = function (인자){
코드
return 반환값
}
변수이름();
● 인자 란 함수를 사용할때 유입되는 입력 값이고, 이에 따라 반환값이나 동작방법을 다르게 할 수 있다.인자는 생략할 수 있다.
● return은 return 뒤의 값을 함수의 결과값으로 반환하고, 동시에 함수를 종료시킨다.
7. 배열 : 연관된 데이터를 모아서 통으로 관리하는 '폴더' 개념
● var 배열이름 = ['값1','값2','값3']
● 배열의 값 꺼내오기 : 배열이름[값의차례 즉 index번호] -> 이때 값의 차례는 0 부터 시작한다.
● 배열의 크기 알아내기 : 배열이름.length;
● 배열의 끝에 값 추가하기 : 배열이름.push('추가할값');
● 배열에 복수의 값 추가하기 : 배열이름.concat(['추가값1','추가값2']);
● 배열의 시작점에 값 추가하기 : 배열이름.unshift('추가할값');
● 배열 첫번째 원소 제거 : 배열이름.shift();
● 배열 끝점 원소 제거 : 배열이름.pop();
● 정렬하는 방법 : 배열이름.sort();
● 역순으로 정렬하는 방법 : 배열이름.reverse();
8. 객체 : 배열에서 데이터를 가져오는 식별자를 숫자가 아닌 문자로 사용할 경우.
var 객체이름 = {
'key이름1' : 값1,
'key이름2' : 값2,
'key이름3' : 값3
}
혹은
var 객체이름 = {};
객체이름['key이름1'] = 값1;
객체이름['key이름2'] = 값2;
객체이름['key이름3'] = 값3;
혹은
var 객체이름 = new Object();
객체이름['key이름1'] = 값1;
객체이름['key이름2'] = 값2;
객체이름['key이름3'] = 값3;
이렇게 만들 수 있다.
● 객체의 값은 key이름으로 가져올 수 있다. 객체이름['key이름1'] 을 하면 결과값은 값1 이 된다.
● 객체이름.key이름1 을 해도 객체에 접근할 수 있다.
● for (key in 객체이름){} -> in뒤에 따라오는 배열의 key값을 in 앞의 변수인 key에 담아서 반복문을 실행하는것. 반복문이 실행될 때 key값들을 가져와서 변수 key에 순서대로 넣는다. key의 값이 아니라 key 자체.
9. 정규표현식
1) 컴파일 : 패턴(찾고자하는 정보)을 찾는 것.
● 패턴을 만드는 방법
정규표현식 리터럴 : var 변수A = /찾으려하는 대상(정규표현식 객체)/
정규표현식 객체 생성자 : var 변수A = new RegExp('찾으려하는 대상(정규표현식 객체)');
변수A 라는 변수를 통해 찾으려 하는 대상을 이용할 수 있게 된다.
● /문자./ -> 이때 . 은 하나의 문자 라는 뜻. 어떠한 문자가 오든 상관 없이 1개의 문자가 더 붙는다.
● var 변수A = /찾으려하는 대상(정규표현식 객체)/i; : i를 객체 뒤에 붙이면 대소문자를 구분하지 않는다.
● var 변수A = /찾으려하는 대상(정규표현식 객체)/g; : g를 객체 뒤에 붙이면 대상에 있는 모든 결과값을 출력값으로 내준다.(a가 정규표현식 객체이고 asad가 대상일 경우 결과값은 a 가 두개 !)
2) 실행 : 찾은 패턴에 어떠한 작업을 구체적으로 하는 것.
* RegExp 라는건 정규표현식 객체를 담고있는 변수.
● 만든 패턴에서 원하는 내용을 찾는방법(추출) : RegExp.exec('대상');
● 대상 안에 변수에 담긴 정규표현식 객체가 있다면 정규표현식 객체를 출력값으로 내준다.
● 정보가 있는지 없는지 test : RegExp.test('대상'); ->대상 안에 변수에 담긴 정규표현식 객체가 있을때 return값을 true로 주는 것.
● 문자열.match(RegExp) : RegExp.exec('대상') 와 비슷하다.
● 문자열.replace(RegExp,'바꿀것') : 문자열에서 RegExp에 해당되는것을 '바꿀것' 으로 바꾼다.
3) 캡처 :
● 정규표현식 내용에서 ()를 쓰면 그룹을 의미한다. 괄호 안의 패턴은 변수처럼 재사용 가능.
● \w 는 모든 문자를 의미 (A~Z,a~z,0~9)
● (\w+) 에서 +는 수량자. 앞의 문자가 하나 이상인 경우에만 유효해 진다.
● \s : 공백
● $n : 정규표현식 객체 내에서 n번째 그룹을 의미.
4) 치환 : 음.... 패스..
'기타 정보' 카테고리의 다른 글
html5 심볼, entitiy code 등 확인할수 있는 사이트 (0) | 2019.07.24 |
---|---|
스터디 - SCSS (0) | 2019.07.24 |
생활코딩 스터디 - Ajax (0) | 2019.02.28 |
생활코딩 스터디 - javascript_1 (0) | 2019.02.28 |
[추천] 유료이미지 사이트 추천, 유토이미지 (0) | 2018.01.17 |