이 자료는 이영록강사님이 2011년 iOS 개발자 포럼에서 발표한 내용을 약간 개선하고 정리한 자료입니다.
iOS의 메모리관리 기법은 retain count라고 하는 독특하면서도 효율적인 방법을 사용하며 최근에 발표된 Xcode에서는 Automatic Reference Counting(ARC) 기법을 통해 release를 사용하에 객체를 소거하는 불편함을 많이 개선하였습니다.
본 자료에서는 이러한 점에 대한 비교적 상세한 설명을 담고 있습니다.
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
Sorry. for koreans only. I'll add english short description. or just visit http://wtfjs.com
아오 썅.
정정사항입니다.
객체 동일비교는 항상 valueOf 결과물로 나온 비교로 하는 데다가,
객체와 배열은 valueOf 해봐야 객체로 나오기 때문에
객체와 배열은 == 하나 === 하나 같은 비용으로 비교합니다.
[1,2,3]==[1,2,3] 은 false가 되므로
[1,,,2]==[1,undefined,undefuned,2] 는 무조건 false로 나옵니다.
이 자료는 이영록강사님이 2011년 iOS 개발자 포럼에서 발표한 내용을 약간 개선하고 정리한 자료입니다.
iOS의 메모리관리 기법은 retain count라고 하는 독특하면서도 효율적인 방법을 사용하며 최근에 발표된 Xcode에서는 Automatic Reference Counting(ARC) 기법을 통해 release를 사용하에 객체를 소거하는 불편함을 많이 개선하였습니다.
본 자료에서는 이러한 점에 대한 비교적 상세한 설명을 담고 있습니다.
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
Sorry. for koreans only. I'll add english short description. or just visit http://wtfjs.com
아오 썅.
정정사항입니다.
객체 동일비교는 항상 valueOf 결과물로 나온 비교로 하는 데다가,
객체와 배열은 valueOf 해봐야 객체로 나오기 때문에
객체와 배열은 == 하나 === 하나 같은 비용으로 비교합니다.
[1,2,3]==[1,2,3] 은 false가 되므로
[1,,,2]==[1,undefined,undefuned,2] 는 무조건 false로 나옵니다.
8. 프로젝트 디렉터리 생성
• 소스 코드를 작성할 프로젝트 디렉터리를 만들어주세요
– MacOS의 경우 시스템 권한이 필요치 않은 곳으로~
• VSCode 에서 프로젝트 디렉토리를 엽니다.
– index.js 파일을 생성합니다.
– console.log("hello es6 study");
• VSCode 에서 ctrl + ` (역따옴표)를 눌러
터미널(CMD) 패널 node index를 실행합니다.
9.
10. 프로젝트 초기화
• 터미널 패널이 열린 상태에서
npm init
• 전부 enter눌러서 기본 설정
• package.json 파일 생김
11. ESLINT INSTALL
• node.js로 만들어진 JavaScript 문법 검사 프로그램
• NPM을 이용해 설치 (npm은 node.js 설치 시 같이 설치됨)
sudo npm install -g eslint
17. 변수와 자료형
• 변수(Variable)의 앞3글자를 따서 var로 선언
– var 변수명 = 값
• 타입을 가리지 않음 (중간에 다른 타입을 넣어도 오류가 발생하지 않음)
• 사용 가능한 타입
– number : 숫자 (정수, 실수를 나누지 않음)
– string : 문자열
– boolean : true/false
– object : 객체 타입 (null 도 속함)
– undefind
– function : 함수
– symbol (es6에서 생김)
32. ES6
L E T, C O N S T
T E M P L AT E L I T E R A L
A R R O W F U N C T I O N
33. 변수 선언 - LET, CONST
• 변수 선언 let, 상수 선언 const
• 중복 선언 불가능
• 유효범위(scope) 관련
– 코드블록 {~}사이에서 유효 (var는 functio의 {~} 안에서만 유효)
– 선언 이후 코드에서 사용가능 (hoisting)
• 기존의 변수 선언 var 키워드는 이제 잊어버리자!
45. ARROW FUNCTION
• function 키워드로 선언하는 함수에 비해 짧고 간결한 표현식
• 모두 익명 함수
• 정적인(lexical) this
function (x, y) {
return x+y;
}
(x, y) => { return x+y; }
46. 생략 가능한 기호
• return 값이 한줄에 간단히 표현 가능하다면
블록 괄호와 return 키워드가 생략이 가능하다
(x, y) => { return x+y; }
(x, y) => x+y;
• Parameter가 1개일때 () 괄호 생략이 가능하다.
하지만 없거나 2개 이상이면 꼭 사용해야 한다.
(x) => { return x*x; }
X => { return x*x; }
X => x*x; 보다 고급 구문
47. LEXICAL THIS
• function 키워드로 선언된 함수들은
this의 범위를 함수 내부으로 새로 정의 되었습니다.
• 화살표 함수로 정의된 함수는 this를
새로 정의하지 않습니다.
function someFunc() {
// ...
setTimeout(function(){
console.log( this );
}, 1000);
}
function someFunc() {
// ...
setTimeout(
()=>{ console.log( this ); }
, 1000 );
}
48. LEXICAL THIS
function someFunc() {
// ...
let to1 = setTimeout(
()=>{ console.log( this.to1 ); } // 접근 가능!
, 1000 );
let to2 = setTimeout(function(){
console.log( this.to2 ); // undefined
}, 1000);
}