2023. 2. 14. 20:41ㆍ졸논 백업
confirm : 확인받기

확인 누르면 test에 True, 취소 누르면 false 저장
위 3개는 스크립트가 일시정지된다..확인 누를때까지 암것도 안댐
명시적 형변환
Number( ) - 숫자로 변환
String( ) - 문자로 변환
Boolean( ) - boolean타입.
*false인 경우 ; 0, 빈 문자열, null, undefined, NaN 이외 모두 True
함수
function 함수형( ){
내용
};
함수 표현식
let 변수 = function( ){ 내용 };
이름이 없는 함수를 생성해 변수에 넣음
함수 선언과 표현식의 차이
함수 선언은 어디서든 호출 가능
sayHello( );
function sayHello( ){ console.log('Hello')}
정상작동함.
이는 자바스크립트 내부 알고리즘 때문. 실행 전 초기화 단계에서 코드에 선언된 모든 함수를 찾아 생성해 둠.
내부에서는 함수 선언이 호출보다 위에 있게 된다.
하지만 표현식은 원래대로 한줄씩 읽으면서 코드에 도달하면 생성된다.
arrow function
SayHello( ) = function( ){ .........내용........}를 화살표 함수로 바꾸면
SayHello = ( )=>{ 내용 } 즉, function이 없어진다.
const sayHello = function(name){
const msg = `hello, ${name}`;
console.log(msg);
}
sayHello('pr0v3rt')
const sayHello = (name)=>{
const msg = `hello, ${name}`;
console.log(msg);
}
sayHello('pr0v3rt')
let add = function(num1,num2){
return num1+num2;
}
return문은 return을 생략하고 중괄호가 아닌 일반 괄호로 바꿀 수 있다. 이때 ; 도 생략..
let add = (num1,num2)=>(
num1+num2
)
console.log(add(1,5));
만약 return문이나 함수 내용이 한 줄이라면 다음과 같이 아예 괄호 자체도 없애버릴 수 있다. 다시 ;을 붙여줘야한다
let add = (num1,num2)=> num1+num2;
let oneargv = function(a){
console.log(`${a}번은 이기주의야!!`);
}
oneargv(4)
위와 같이 인수가 하나일 땐 괄호를 생랼할 수 있다.
let oneargv = a=> console.log(`${a}번은 이기주의야!!`);
oneargv(4)

ㅋㅋㅋ
인수가 없을 때는 괄호가 생략할 수 없으며, return 전 여러 줄이 있다면 중괄호를 괄호로 바꾸거나 생략할 수 없다.
객체
객체는 중괄호 안의 key와 value로 구성되며 콤마로 구분한다.
마지막 콤마는 있어도 되고 없어도 되지만, 나중에 수정이 용이해서 난 그냥 붙인다.
const pr0v3rt = {
name:'applepen',
age : 7,
job : NaN,
}
객체의 접근
pr0v3rt.name
pr0v3rt.job
pr0v3rt.['name']
.을 사용하거나 [ ]로 접근한다.
객체 추가
pr0v3rt.fav_food = '갈비탕';
그냥 겹치지 않는 키로 .을 사용해 값을 지정해주면 된다.

삭제
delete pr0v3rt.test;
delete키워드로 삭제하고싶은 프로퍼티 지정
단축 프로퍼티
brand = 'Samsung';
price = 100;
const phone = {
brand : brand,
price : price,
}
값이 세팅된 변수를 객체의 프로퍼티로 활용할 수 있다. 더 간단하게 하면 아예 변수명으로만 표현할 수 있다.
brand = 'Samsung';
price = 100;
const phone = {
brand,
price,
}
console.log(phone);

초기화하지 않은 변수를 사용하면 not defined 에러가 뜬다.
프로퍼티 존재 여부 확인
객체에 존재하지 않는 프로퍼티를 접근하면 에러가 뜨는 건 아니지만 undefined라고 나온다.

프로퍼티가 객체에 존재하는지 확인할 땐 'in'을 쓴다.
console.log('age' in phone);
존재하면 True, 아니면 false를 반환한다.
메서드
객체의 프로퍼티로 할당 된 함수
let cat = {
name : 'haru',
age : 3,
breed : 'KoreanShortHair',
feature : function(){console.log('냥펀치를 날립니다.')}
//줄여서 feature(){console.log('냥펀치를 날립니다.')}와 같이 쓸 수도 있다.
}
cat.feature();
this
객체를 가리키는 변수
feature(){console.log("냥펀치를 날립니다.")
console.log(this)
}
위 cat객체의 feature메서드에 this를 출력하는 라인을 추가했다.

보면 객체 자체를 출력하고 있다.
그런데 만약 feature메서드가 화살표 함수로 선언됐다면 this는 해당 메서드가 속해있는 객체가 아닌, 전역 객체(브라우저 환경: window, nodejs환경 : global)를 가져온다. 화살표 함수는 자신만의 this를 가지지 않기 때문이다.
때문에 객체의 메서드는 화살표함수로 선언하지 않는 것이 좋다.
배열
js의 배열은 숫자, 객체, 함수, 문자 등 다양한 타입을 지원한다.
'졸논 백업' 카테고리의 다른 글
D3 JS 기초 (0) | 2023.02.14 |
---|---|
ZeroNet 동작 방식 (0) | 2023.02.14 |
비트토렌트 동작 방식 (0) | 2023.02.14 |
Zeronet content.db structure (0) | 2023.02.14 |
PyGeoIP 사용하기 (0) | 2023.02.14 |