**자바스크립트에서는 배열이 파이썬의 리스트같은 것. '[]' 대괄호로 감싼다.
function getName(name) {
return name + '님';
}
const result1 = getName('개발자');
const result2 = getName('디자이너');
const result3 = getName('기획자');
console.log(result1)
console.log(result2)
console.log(result3)
def getname(name):
return name+'님'
result1 = getname('개발자')
result2 = getname('디자이너')
result3 = getname('기획자')
result1
result2
result3
JS에서는 return을 해주지 않으면 결과가 없는게 아니고 undefined라고 뜸.
let num = 1;
let newNum = num++;
num=1
newnum = num
num+=num
let num = 1;
let newNum = ++num;
num=1
newnum=num
newnum += num
!!밑에 2+2를 감싸고 있는 괄호를 없애면 2들을 스트링으로 인식하여 출력이 22로 됨.
function textConcatenation() {
let text = "2 더하기 2는 " +(2 + 2);
return text;
}
def textconcatenation():
return "2더하기 2는 "+str(2+2))
컬러명을 변수로 받고 조건에 따른 반응들 정의
function myFavoriteColor(color) {
if (color=="navy") {
return "Good!"
} else if (color=="yellow") {
return "Bad!"
} else {
return "Whatever!"
}
}
def myfavoritecolor(color):
if color == "navy":
return "Good!"
elif color == "yellow"
return "Bad!"
else:
return "Whatever!"
---
<table style="border-collapse: collapse; width: 100%;" border="1"><tbody><tr><td style="width: 33.3333%;">비교연산자,논리연산자</td><td style="width: 33.3333%;">자바스크립트</td><td style="width: 33.3333%;">파이썬</td></tr><tr><td style="width: 33.3333%;">같다</td><td style="width: 33.3333%;">===,==(2개짜리는 느슨한 동등비교,type상관안함)</td><td style="width: 33.3333%;">==</td></tr><tr><td style="width: 33.3333%;">다르다</td><td style="width: 33.3333%;">!==</td><td style="width: 33.3333%;">!=</td></tr><tr><td style="width: 33.3333%;">또는</td><td style="width: 33.3333%;"> ||</td><td style="width: 33.3333%;">or</td></tr><tr><td style="width: 33.3333%;">그리고</td><td style="width: 33.3333%;">&&</td><td style="width: 33.3333%;">and</td></tr></tbody></table>
---
if문 과 비교연산자를 쓰기
```javascript
function canIDrinkSoju(age) {
if (age<20){
return "애야 가서 공부나 해라!"
} elif (age>50){
return "건강을 위해서 술은 적당히 마시세요!"
} else{
return "소주에는 곱창 어떠신가요?"
}
}
def canidrinksoju(age):
if age<20:
return "애야 가서 공부나 해라^^"
elif age>50:
return "건강을 위해서 술 줄이세요"
else:
return "소주에는 곱창 어떠신가요?"
#가위바위보를 구현해봄. 비기는경우는 무조건 플레이어1을 리턴시킴. 나머지경우 이기는사람 리턴.
function rockPaperScissors(player1, player2) {
if((player1 ==="가위" &&player2==="보")||(player1==="바위"&&player2==="가위")||(player1==="바위"&&player2==="가위")){
return "player1"}
else if ((
player1 ==="가위"&&player2==="바위")||(player1 ==="바위" &&player2==="보")||(player1 ==="보" &&player2==="가위"))
{
return "player2"
} else{
return "player1"
}
}
함수 구현하는 것은 function으로 하고 parameter는 얼마든지 괄호안에 넣어주면 됨. 그리고 {}안에 모든 것을 넣어줌.
배열은 대괄호([])에 감싸져 있다.
var cities = ["서울","울산","대구"]
서울, 울산, 대구는 Element(요소)라 부른다.
인덱싱은 파이썬과 같다.
0부터 시작
[0] 이렇게 호출
for문
for (반복조건) { //반복조건이 맞으면 실행할 코드 }
예)
let count = 1;
for (let i = 0; i <= 5; i++) {
count = count + 1;
}
findSmallestElement 함수를 구현해 주세요.
findSmallestElement 의 arr 인자는 숫자 값으로만 이루어진 array 입니다.
array 의 값들 중 가장 작은 값을 리턴해주세요.
function findSmallestElement(arr) {
// your code here
if (arr.length === 0) {
return 0;
}
let result = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < result) {
result = arr[i];
}
}
return result;
}
Array에 사용할 수 있는 함수
Push와 unshift
요소를 추가하는 함수
push는 꼬리에 요소를 추가
unshift는 머리부분에 요소를 추가
pop - 마지막 요소가 제거
문제
divideArrayInHalf 함수를 다음과 같이 구현해주세요.
divideArrayInHalf 함수의 인자인 array는 숫자 값으로만 구성되어 있으며 정확히 총 5개의 요소(element)로 구성되어 있습니다.
array의 요소들 중 10과 같거나 작은 값의 element들은 result의 맨 앞으로,
10보다 큰 값의 요소들은 result의 맨 뒤로 재구성된 배열을 리턴해주세요.
- 중요사항
이때, 순서는 array의 맨 뒤의 요소 부터 맨 앞의 요소까지 순차적으로 이루어저야 합니다.
function divideArrayInHalf(array) {
let result = [];
let len = array.length-1
for (let i=len; i>=0; i--){
let x = array[i];
if (x>10){
result.push(x)
}else {
result.unshift(x)
}
}
return result;
}
데이터 타입 확인
typeof <데이터>
자바스크립트에서
True를 반환 하는 경우
문자열: 비어있지 않은 모든 문자열
숫자 : 0이 아닌 모든 숫자
객체 : 모든 객체 ({},[] 모두 포함)
false로 변환되는 값
문자열 : 빈문자열("")
숫자 : 0, NaN
객체 : null
undefined
let upperLastName = lastName.toUpperCase();
let lowerLastName = lastName.toLowerCase();
소문자,대문자로 바꿔주는 함수
.indexOf("바보");
하면 단어가 들어있나 찾아줌.
..slice(0, firstChar)
slice(잘릴 시작위치, 잘릴 끝위치)
자바스크립트 언어의 특징 중 하나가 데이터 타입을 신경쓰지 않는다는 것입니다.
이 점은 양날의 검이라고 할 수 있겠습니다.
console.log(2019+"2000");
console.log(2019-"2000");
컴퓨터가 +의 양쪽을 보고, 하나라도 String이 있으면
문자열로서 합쳐줍니다.
let rightNow = new Date();
let year = rightNow.getFullYear();
let month = rightNow.getMonth()+1;
let date = rightNow.getDate();
let day = rightNow.getDay();
let currentHour = rightNow.getHours();
let currentMin = rightNow.getMinutes();
그런데 -라면, String의 마이너스는 존재 하지 않으므로
양쪽의 값을 모두 숫자로 변환해서 계산해줍니다.
-
이렇게 클래스 내에서 name, price와 같이 변경 가능한 상태값이자 class내의 컨텍스트에서 어느 곳에서나 사용할 수 있는 변수를 '멤버 변수'라고 부릅니다.
-
멤버 변수는 'this' 키워드로 접근합니다.
인스턴스는 Class 이름에 new를 붙여서 생성합니다.
ES5에서 ES6로 넘어오면서 함수 문법이 조금 바뀌었다. 둘다 사용 가능하다.
function이 빠지고 parameter를 '='으로 구분하여 쓴다. 그리고 함수의 로직은 화살표 뒤에 {}안에 들어간다.
만약 인자가 있다면,
const hamSu = parameter => {
return parameter + "매개변수"}
위와 같이 쓸 수 있다. 파라미터가 한개라서 소괄호를 안했지만 한개 이상이라면 ()로 묶어주어야 한다.
그리고 ES6로 넘어오면서 스트링을 담는 법이 새로 생겼다.
'1' 옆에 있는 ' `' 백틱이라고 하는데 이걸로 스트링을 감싸면 그대로 가져올 수 있다.
let life = '인생';
let hoho = \`내가
말했지
${life}은
아름답다고\`;
새로이 추가된 3가지 편한 기능
-
startsWith
-
endsWith
-
includes
indexOf와 같이 문자열을 찾는 것인데 조건검색같은 느낌.
let life = '인생은 아름답다.'
console.log(life.startsWith('인생은');
console.log(life.endsWith('다.');
console.log(life.includes('아름');
이렇게 하면 다 true로 나온다.
map은 똑같은 것 같다.
let arr = \[1,2,3,4,5,6,7\]
const func = (x)=>{
return x\*x
}
let testmap = arr.map(func)
여기 예제에서는 그냥 포문인 것 같은데.
/>><배열>.map(함수)
const keys = Object.keys(obj) // \['name', 'weight', 'price', 'isFresh'\]
for (let i = 0; i < keys.length; i++) {
const key = keys\[i\] // 각각의 키
const value = obj\[key\] // 각각의 키에 해당하는 각각의 값
console.log(value)
}
Object.keys(obj) -> 키들을 배열로 묶어서 가져옴.
Object.values
Object.entries
그리고 ES6오면서 포문을 작성하는데에 변화가 있었다고 한다.
기존 포문
for (let i=0 ; i<10;i++){
console.log('i')
}
바뀐 것
for (let i in \[0,1,2,3,4,5,6,7\]){
console.log(i)
}
'Language > JavaScript' 카테고리의 다른 글
자바스크립트 고급스럽게 쓰기 Javascript Pro Tips (0) | 2021.04.29 |
---|---|
타입스크립트란? TypeScript (0) | 2020.07.08 |
Node.js 커닝페이퍼 (0) | 2020.06.24 |
JavaScript-파이썬처럼 이해하기. (0) | 2020.06.22 |