Python 및 JavaScript의 등가물.제3부분


이것은 Python과 JavaScript의 유비에 관한 4편의 문장 시리즈의 세 번째 부분이다.에서 우리는 대부분의 전통적인 Python 2.7과 ECMAScript 5 표준을 바탕으로 하는 자바스크립트를 소개했다.이번에 우리는 Python 3.6과 ECMAScript 6 표준을 바탕으로 하는 자바스크립트를 연구하기 시작할 것이다.ECMAScript 6 표준은 최신 버전의 브라우저만 지원합니다.이전 브라우저의 경우 Babel 차세대 JavaScript 코드를 브라우저 간에 호환되는 등가 코드로 컴파일해야 합니다.그것은 이렇게 많은 재미있는 사물을 탐색하기 위해 문을 열었다.문자열 삽입값, 패키지 해제 목록, lambda 함수, 인덱스 교체, 생성기, 집합부터 시작합니다!

문자열의 변수


변수 값을 사용하여 문자열의 오래되고 비효율적인 연결을 만드는 방법은 다음과 같습니다.
name = 'World'
value = 'Hello, ' + name + '!\nWelcome!'
이것은 매우 희소하고 읽기 어려워질 수도 있다.그 밖에 변수 주위의 문장에서 빈칸이 빠지기 쉽다.
Python 버전 3.6과 JavaScript는 ECMAScript 6 표준을 기반으로 하기 때문에 이른바 문자열 삽입값을 사용할 수 있습니다.이것은 변수의 값으로 채워진 문자열 템플릿입니다.
Python에서도 f 문자열이라고 합니다. 기호는 "f"로 시작하기 때문입니다.
name = 'World'
value = f"""Hello, {name}!
Welcome!"""

price = 14.9
value = f'Price: {price:.2f} €'  # 'Price: 14.90 €'
JavaScript 문자열 템플릿에서 다음 반전 기호로 시작하고 종료합니다.
name = 'World';
value = `Hello, ${name}!
Welcome!`;

price = 14.9;
value = `Price ${price.toFixed(2)} €`;  // 'Price: 14.90 €'
문자열 템플릿은 한 줄일 수도 있고 여러 줄일 수도 있습니다.Python의 f 문자열은 변수의 형식을 전달할 수 있지만, 속성과 getter 방법이 아니면 변수를 호출할 수 없습니다.

포장 해제 명세서


Python과 현재의 JavaScript는 하나의 재미있는 특성을 가지고 있으며, 서열 항목을 단독 변수에 분배할 수 있다.예를 들어, 다음 구문을 사용하여 목록의 세 값을 변수 a, b, c로 읽을 수 있습니다.
[a, b, c] = [1, 2, 3]
메타그룹의 경우 괄호를 생략할 수 있습니다.다음은 Python에서 두 변수 값을 교환하는 일반적인 방법입니다.
a = 1
b = 2
a, b = b, a  # swap values
다음 세대 JavaScript를 사용하여 다음을 수행할 수 있습니다.
a = 1;
b = 2;
[a, b] = [b, a];  // swap values
Python 3.6에서 목록이나 메타그룹에 알 수 없는 수량의 항목이 있으면 여러 값의 메타그룹에 할당할 수 있으며 나머지 패키지는 목록에 포함할 수 있습니다.
first, second, *the_rest = [1, 2, 3, 4]
# first == 1
# second == 2
# the_rest == [3, 4]
또한 ECMAScript 6를 통해 다음을 수행할 수 있습니다.
[first, second, ...the_rest] = [1, 2, 3, 4];
// first === 1
// last === 2
// the_rest === [3, 4]

익명 함수


Python과 JavaScript는 한 줄에 함수를 만들 수 있는 매우 간결한 기능을 가지고 있습니다.이 함수들을lambdas라고 부른다.lambda는 하나의 매개 변수를 받아들이고 계산 값을 되돌려주는 매우 간단한 함수입니다.함수를 다른 함수에 리셋하거나 작업 시퀀스에 있는 모든 단독 요소의 함수로 전달해야 할 때 lambda를 사용합니다.
Python에서는 다음과 같이 키워드를 사용하여 lambda를 정의할 수 있습니다.
sum = lambda x, y: x + y
square = lambda x: x ** 2
JavaScript에서 lambda는 lambda 기호를 사용합니다.매개변수가 여러 개 있는 경우 괄호 안에 있어야 합니다.
sum = (x, y) => x + y;
square = x => Math.pow(x, 2);

인덱스 교체 없음


많은 프로그래밍 언어들은 색인을 사용하고 값을 늘려서 서열을 교체할 수 있습니다.그런 다음 특정 위치에서 항목을 가져오려면 배열에서 항목을 읽을 수 있습니다. 예를 들어 다음과 같습니다.
for (i=0; i<items.length; i++) {
    console.log(items[i]);
}
이것은 아주 좋은 문법이 아니며, 기술성이 매우 강하다. 그것은 읽기에 부자연스럽다.우리가 진정으로 원하는 것은 목록에서 모든 값을 얻는 것뿐이다.Python은 다음 요소만 교체할 수 있는 좋은 가능성을 가지고 있습니다.
for item in ['A', 'B', 'C']:
    print(item)
또한 현대 JavaScript에서는 => 연산자를 사용하여 다음을 수행할 수 있습니다.
for (let item of ['A', 'B', 'C']) {
    console.log(item);
}
Python에서 문자열을 교체할 수도 있습니다.
for character in 'ABC':
    print(character)
현대 JavaScript에서:
for (let character of 'ABC') {
    console.log(character);
}

발전기


Python과 현대 JavaScript는 특수한 함수를 정의할 수 있으며, 이 함수를 통해 교체할 수 있습니다.매번 교체할 때, 그것들은 시퀀스의 다음 생성 값을 되돌려줍니다.이 함수들을 생성기라고 부른다.생성기를 사용하면 범위 내의 숫자, 파일의 줄, 서로 다른 페이지 API에서 호출된 데이터, 그리고 다른 동적 생성 시퀀스를 얻을 수 있습니다.
기술적으로 말하자면, 생성기는 정상 함수와 유사하지만, 그것들은 반환값이 아니라 생성값이다.이 값은 한 번의 교체에서 되돌아옵니다.함수가 끝나기만 하면 이 세대는 발생할 것이다.
이 점을 설명하기 위해 아래의 Python 코드는 생성기for..of를 만들고 주어진 숫자를 1(예를 들어 10, 9, 8,..., 1)에게 되돌려줍니다.
def countdown(counter):
    while counter > 0:
        yield counter
        counter -= 1

for counter in countdown(10):
    print(counter)
현대 JavaScript에서는 동일한 효과를 구현할 수 있지만 countdown() 문장의 별표를 참고하십시오.생성기라고 정의합니다.
function* countdown(counter) {
    while (counter > 0) {
        yield counter;
        counter--;
    }
}
for (let counter of countdown(10)) {
    console.log(counter);
}

집합


우리는 이미 목록, 원조, 수조를 보았다.하지만 여기에는 또 다른 유형의 데이터 집합이 있다.집합은 모든 원소가 한 번만 존재하는 원소 그룹이다.집합론도 집합 연산을 규정했다. 예를 들어 union, intersection, and difference 그러나 우리는 오늘 그것들을 토론하지 않는다.
이것은 집합을 만들고 그 안에 요소를 추가하는 방법입니다. 값이 존재하는지 확인하고, 집합 중의 요소의 총량을 확인하고, 그 값을 교체하고, Python을 사용하여 값을 삭제합니다.
s = set(['A'])
s.add('B'); s.add('C')
'A' in s
len(s) == 3
for elem in s:
    print(elem)
s.remove('C')
다음은 현대 JavaScript에서 동일한 효과를 구현하는 방법입니다.
s = new Set(['A']);
s.add('B').add('C');
s.has('A') === true;
s.size === 3;
for (let elem of s.values()) {
    console.log(elem);
}
s.delete('C')

배달

  • 문자열 삽입값이나 텍스트 템플릿을 사용하면 여러 줄의 텍스트가 있어도 더 깨끗하고 좋은 코드를 가질 수 있습니다.
  • 색인을 사용하지 않고 서열이나 그룹의 요소를 교체할 수 있습니다.
  • 거의 무한한 원소 서열이 있을 때 생성기를 사용하십시오.
  • 컬렉션에 데이터가 있는지 신속하게 확인하려면 컬렉션을 사용합니다.
  • 짧고 뚜렷한 단행 함수가 필요할 때lambdas를 사용하십시오.
  • 앞에서 아시다시피 저는 Python과 JavaScript의 모든 등가물 목록을 포함하는 메모지를 제공했습니다. 유구한 역사도 있고 미래의 시련도 견딜 수 있습니다.당신이 원하는 것을 찾을 때까지 창 사이를 전환하거나 위아래로 스크롤하는 것보다 눈앞에서 인쇄하는 것이 훨씬 편리하다.그래서 나는 네가 메모지를 받아서 잘 이용하라고 건의한다.
    ✨✨✨ Get the Ultimate Cheat Sheet of
    Equivalents in Python and JavaScript
    ✨✨✨

    이 시리즈의 두 번째 부분에서 우리는 함수 매개 변수, 클래스, 계승과 속성을 이해할 것이다.기대해주세요!
    표지 사진 작성자Alex Knight

    좋은 웹페이지 즐겨찾기