180911 TIL Lec1 다각형의 넓이
Sep 11, 2018
»
1막,
TIL (Today I Learned)
기본문법
- toString.call(x): typeof는 어떤 객체의 인스터스인지 정확히 알려주지 않는 것이 단점인데, toString.call(x)를 이용하면 극복. but 성능 느림
- 분기: 프로그램 실행순서를 변경하여 다른 명령을 실행할 수 있게 하는 일 = swtich가 그 기능을 함
함수
- 함수선언문 vs 함수표현식
///함수선언문 function test() { console.log(printName()); function printName() { return 'anonymous'; } } test() //anonymous
///함수표현식
function test() {
console.log(printName());
var printName = function() {
return 'anonymous';
}
}
test();
//TypeError: printName is not a function
함수표현식은 변수값에 함수를 담아놓은 것
ex. var inner = function ();
함수표현식으로 표현하면 함수선언문과 달리 선언과 호출순서에 따라 정상적으로 함수가 실행되지가 않는다. <- 호이스팅 때문
- 호이스팅: 함수 실행전 함수 안에 필요한 변수값들을 미리 모아서 선언
ES6부터 let, const를 사용하면 호이스팅을 막을 수 있다.
function test() {
console.log(printName());
const printName = function() {
return 'anonymous';
}
}
test();
//ReferenceError: printName is not defined
- 1부터 무한대까지 인자를 받아 합을 구하는 함수 만들기
function add(a, b) {
let sum = a;
for (i = a; i < b; i++) {
sum += i;
}
return console.log(sum);
}
add(1,10);
- arrow function (간지)
function getName(name) {
return "Kim " + name ;
}
//위 함수는 아래 arrow함수와 같다.
var getName = (name) => "Kim " + name;
재귀
아직 잘 모르겠음. 맥락은 알겠는데 어떻게 사용해야할지…
퀴즈 풀이
기타
- leo의 도움으로 VSCode에서 디버깅하는 방법을 알게되었다! Code Runner
- VSCode 공식문서
내 페이스대로! Remember Sara-
9/12(Wed) To-Do
- 최대공약수 코드에서 새로운 문법 사용한 것 익히기 ```javascript /// 두 배열에서 겹치는 값 삭제 let cd = firstNumber.filter(function (val) { return secondNumber.indexOf(val) != -1; });
```javascript
/// 두 배열에서 큰 값 출력
var gcd = cd[0];
for (i = 0; i <= gcd; i++) {
if (cd[i] > gcd) {
var gcd = cd[i];
}
}
- 알고리즘 수업(10:30-12:30)
- Lecture1 배열~Step1까지하고 PR보내기