import {AppRegistry} from 'react-native';
import App from './src/App';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
첫 화면을 구성하는 파일만 변경하고 리액트 네이티브에서 사용되는 파일을 모두 src 폴더에서 관리하도록 한다.
//호이스팅
add(3, 4) //=>undefined
function add (x, y){
return x+y
}
add(3, 4) // 에러
const add = function (x, y){
return x+y
}
console.log(add)//undefined => add 선언 전 undefined로 초기화
add(3, 4)// 에러 add는 함수가 아님
var add = function (x, y){
return x+y
}
함수를 const 변수에 할당하여 변수처럼 취급
Arrow function => 함수 간단히
const nothing = function (x){
return x
}
console.log(nothing(1))
//fucntion 삭제 가능
const nothing1 = (x) =>{
return x
}
console.log(nothing1(1))
//괄호 삭제가능 매개변수가 한개일 경우
const nothing2 = x =>{
return x
}
console.log(nothing2(1))
//중괄호, return 삭제가능 함수 안 표현식이 1개인 경우만
const nothing3 = x => x
console.log(nothing3(1))
var obj1 = {
val : 40
};
var obj2 = obj1;
console.log(obj1.val); //40
console.log(obj2.val); //40
obj2.val = 50;
console.log(obj1.val); //50
console.log(obj2.val); //50
obj1은 객체를 저장하는 것이 아니라 객체를 가리키는 참조값을 저장한다.
obj2=obj1을 하면 obj2도 obj1이 가리키는 참조값을 가지게 된다.
따라서 obj1,2가 가리키는 객체는 동일한 객체이다.
객체비교
var a = 100;
var b = 1--;
var obj1 = {value: 100};
var obj2 = {value: 100);
var obj3 = obj2;
console.log(a == b); // true
console.log(obj1 == obj2); // false 다른 객체를 참조하므로
console.log(obj2 == obj3); // true 같은 객체를 참조하므로
참조에 의한 함수 호출 (call by reference)
var a =100;
var obj = { value: 100};
function changeArg(num, obj){
num = 200;
obj.value = 200;
console.log(num);
console.log(obj);
}
changeArg(a, obj);// 200 {value: 200}
=> num에 100 값이 전달되고 200으로 바뀜, ojb.value = 200이 됨
console.log(a); //100
console.log(obj);// {value: 200} 참조에 의한 호출이므로
자바스크립트에서 기본 타입은 숫자, 문자열, boolean, null, undefined라는 타입이 있다.
자바스크립트는 변수를 선언할 때 타입을 미리 정하지 않고, var라는 한가지 키워드로만 변수를 선언한다.
//예시
//숫자
var intNUM = 1;
//문자열 타입
var Str = 'asdf';
var Str2 = "Asdfasd";
var Char = 'a';
//boolean
var blool = true;
//undefined
var emptyVar;
//null
var nullVar = null;
//타입은 typeof 연산자를 이용하여 확인한다.
typeof intNUM;
..
...
숫자
- 자바스크립트는 하나의 숫자형만 존재
- 자바스크립트는 모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문
- 모든 숫자를 실수로 처리하므로 나눗셈 연산시 주의해야함
EX) 5/2를하면 2.5가 나온다
소수점을 버리고 정수부분만 구하고 싶으면 Math.floor(숫자) 메소드 사용
문자열
- 작은따옴표나 큰 따옴표로 생성
- 자바스크립트에서는 char타입과 같이 문자 하나만을 별도로 나타내는 데이터 타입은 존재하지 않음
- 한번 정의된 문자열은 변하지 않는다.(한번 생성된 문자열은 읽기만 가능, 수정은 불가)
var str = 'test';
console.log(str[0]. str[1], str[2], str[3]); //=> test
str[0] = 'T';
console.log(str); //=> test로 소문자가 나온다.
//한번 정의된 문자열은 변하지 않는다.
- 문자열은 문자 배열처럼 인데그슬 이용하여 접근 가능
boolean
- true, false값 가짐
null, undefined
- 값이 비어있음을 나타냄
- 기본적으로 값이 할당되지 않은 변수는 undefined임
- undefined 타입의 변수는 변수 자체값이 undefined임 => undefined가 타입이면서 값이다.