<aside>
💡 **주의할 내용들
변수
하지만 여러 방법을 혼용해서는 안된다!
함수
- 호출 후에는 반드시 리턴 값을 가진다
문자열
배열
Array.indexOf(el) : 배열에서 해당 요소의 첫번째 인덱스 반환
string은 안된다
if(el in array) [X] / Array.includes(el) [O] : 배열에서 해당 요소 포함 여부
메소드별로 mutable 여부가 다르다
sort는 원본의 값을 바꾼다 cf. arr.sort() : 괄호 안에 들어가는 function의 결과값이 0보다 작으면 비교하는 값 a,b 에 대해 a,b 0보다 크면 b,a 같으면 a,b 그대로 정렬한다
매개변수 : compareFunction (optional)
생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬됩니다.
반환 : 정렬한 배열. 원 배열이 정렬되는 것에 유의하세요. 복사본이 만들어지는 것이 아닙니다.
parseFloat()와 Number()의 차이
parseFloat()
기호, 숫자, 소수점 또는 지수 이외의 문자를 발견하면
그 전까지의 결과만 반환하고 문제의 문자와 그 이후는 모두 무시한다
Number()
위치에 상관 없이 문자를 발견 시 NaN 반환하는 더 엄격한 방법
ex. parseFloat('1234string') // 1234
ex. Number('1234string') // NaN
ex. Number(" ")// falsy한 값이므로 0으로 나온다
ex. Number(null)// 0
</aside>
<aside> 💡 찾아볼 내용
typeof
를 활용하여 특정 값의 타입을 확인할 수 있다.
slice()
메소드는 문자열의 일부를 추출하면서 새로운 문자열을 반환합니다.
strLength(문자열 길이) + beginIndex
로 취급됩니다. 뒤에서 1부터 센다beginIndex
가 strLength
보다 크거나 같은 경우, slice()
는 빈 문자열을 반환합니다.endIndex
가 생략된다면, silce()
는 문자열 마지막까지 추출합니다.str.split([separator[, limit]])
separator
가 두 글자 이상일 경우 그 부분 문자열 전체가 일치해야 끊어집니다.separator
가 생략되거나 str
에 등장하지 않을 경우, 반환되는 배열은 원본 문자열을 유일한 원소로 가집니다.separator
가 빈 문자열일 경우 str
의 각각의 문자가 배열의 원소 하나씩으로 변환됩니다var a = ['바람', '비', '불'];
var myVar1 = a.join(); // myVar1에 '바람,비,불'을 대입 : 디폴트 - ,
var myVar2 = a.join(', '); // myVar2에 '바람, 비, 불'을 대입
var myVar3 = a.join(' + '); // myVar3에 '바람 + 비 + 불'을 대입
var myVar4 = a.join(''); // myVar4에 '바람비불'을 대입
반복문
for in : 문자열의 요소로 반복문, 객체의 요소로 반복문, 배열의 인덱스로 반복문
=> 배열도 객체로 인식하기 때문에 (키(index) : 값(element))
for of : 배열의 요소로 반복문
포함
in 연산자 : 객체에 속성(키)가 있는지 확인 - 불린 반환
주의 : 값은 확인 X, String()객체만 가능(리터럴은 불가능), 배열의 인덱스만 가능(배열을 객체로 인식)
문자열, 배열 - arr.includes(el)
-문자열 slice 찾아보기
- **`slice()`**
메소드는 문자열의 일부를 추출하면서 새로운 문자열을 반환합니다.
- beginIndex
- 만약 음수라면, beginIndex는 `strLength(문자열 길이) + beginIndex`로 취급됩니다. 뒤에서 1부터 센다
- 만약 `beginIndex`가 `strLength` 보다 크거나 같은 경우, `slice()`는 빈 문자열을 반환합니다.
- endIndex : Optional
- 0부터 시작하는 추출 종료점 인덱스로 그 직전까지 추출됩니다.
- 인덱스 위치의 문자는 추출에 포함되지 않습니다.
- 만약 `endIndex`가 생략된다면, `silce()`는 문자열 마지막까지 추출합니다.
- substring과 같다
- (앞, 뒤) : 앞- (뒤-1)까지
- 순서가 반대여도 가능
- 하나만 쓰면 앞 값으로 들어간다
- 뒤가 더 크면 끝까지 다 표현
- cf. 배열의 splice, splice도 있다
- split
- `str.split([separator[, limit]])`
- separator
: 원본 문자열을 끊어야 할 부분을 나타내는 문자열을 나타냅니다.
실제 문자열이나 [정규표현식](<https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp>)을 받을 수 있습니다.
- 문자열 유형의 `separator`가 두 글자 이상일 경우 그 부분 문자열 전체가 일치해야 끊어집니다.
- `separator`가 생략되거나 `str`에 등장하지 않을 경우, **반환되는 배열은 원본 문자열을 유일한 원소로** 가집니다.
- `separator`가 **빈 문자열**일 경우 `str`의 각각의 문자가 **배열의 원소 하나씩으로 변환**됩니다
- replace
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';
p.replace('dog', 'monkey')
문제
문자열을 인자로 받아서 느낌표를 붙여서 리턴해주는 함수 returnWordWithJoy가 있습니다.
함수 returnWordWithJoy의 첫 번째 인자로 문자열 "I love coding"을 넣어서 호출하고,
그 결과값을 변수 word에 할당하세요.
// 문자열을 인자로 받아서 느낌표를 붙여서 리턴 해주는 함수 returnWordWithJoy가 있습니다.
// 함수 returnWordWithJoy의 첫 번째 인자로 문자열 "I love coding"을 넣어서 호출하고, 그 결과값을 변수 word에 할당하세요.
let word; // TODO
// 아래 코드는 변경하지 마세요
function returnWordWithJoy(word) {
if (typeof word !== 'string') {
return 'wrong type';
} else {
return word + '!';
}
}
word = returnWordWithJoy('I love coding');
프로그래밍은 데이터 처리를 하는 것임을 이해한다.
변수 사용은 데이터를 편리하게 저장하고 꺼내 쓰는 것임을 이해한다.
변수의 선언과 값의 할당에 대해서 설명하고 코드로 작성할 수 있다.
선언
: 메모리에 사용할 공간을 선언하고 **이름(변수)**를 정해준다let 변수이름;
할당
: 해당 공간에 값을 넣는다변수이름 = 값;
let 변수이름 = 값
값으로 변환된 표현문이 변수에 할당되어 담기는 과정을 설명할 수 있어야 한다.
변수 이름 짓는 규칙
let sum =1;
let sum = 2;
//Error!
할당이 없는 변수
let myname;
//undefined (선언만 되고 값을 할당하지 않아서 이렇게 나온다)