자바스크립트 한 줄에 여러 변수를 정의하는 방법은?
온라인으로 설명서를 읽다 보면 한 줄에 여러 개의 자바스크립트 변수를 제대로 정의하는 방법이 헷갈립니다.
다음 코드를 압축하려면 한 줄에 여러 개의 자바스크립트 변수를 정의하는 적절한 자바스크립트 "엄격한" 방법은 무엇입니까?
var a = 0;
var b = 0;
해당:
var a = b = 0;
아니면
var a = var b = 0;
등..
자바스크립트의 es6 또는 노드를 이용하여 다음과 같은 작업을 할 수 있습니다.
var [a,b,c,d] = [0,1,2,3]
그리고 여러 변수를 한 줄로 쉽게 인쇄하려면 다음과 같이 하십시오.
console.log(a, b, c, d)
0 1 2 3
이것은 여기서 @alex gray의 답변과 비슷하지만, 이 예시는 CoffeeScript 대신 Javascript에 있습니다.
이것은 자바스크립트의 배열 파괴 할당을 사용합니다.
다중 과제 구성에 의존하면 한 지점이나 다른 지점에서 자신의 발에 총을 쏠 수 있기 때문에 쉼표에 의존하려는 것입니다.
예를 들면 다음과 같습니다.
>>> var a = b = c = [];
>>> c.push(1)
[1]
>>> a
[1]
이들은 모두 메모리에서 동일한 개체를 가리키며, 개체(배열, 개체 리터럴, 함수)를 참조할 때마다 값이 아닌 참조로 전달되기 때문에 "유일한" 개체가 아닙니다.따라서 변수 중 하나만 변경하고 변수가 개별적으로 작동하기를 원했다면 개별 개체가 아니기 때문에 원하는 것을 얻지 못할 것입니다.
또한 다중 할당에는 보조 변수가 전역 변수가 되어 전역 네임스페이스로 유출되지 않도록 하는 단점이 있습니다.
(function() { var a = global = 5 })();
alert(window.global) // 5
쉼표만 사용하는 것이 가장 좋고 읽기 쉽도록 공백이 많은 것이 좋습니다.
var a = 5
, b = 2
, c = 3
, d = {}
, e = [];
할당을 가치로 하는 한 줄로 할 수 있는 방법은 없습니다.
var a = b = 0;
b를 전역으로 만듭니다.(누설 변수가 없는) 올바른 방법은 다음과 같습니다.
var a = 0, b = a;
다음의 경우에 유용합니다.
var a = <someLargeExpressionHere>, b = a, c = a, d = a;
두 줄로 나누어서 하는 게 어때요?
var a, b, c, d; // All in the same scope
a = b = c = d = 1; // Set value to all.
그 이유는 변수 선언에 대한 로컬 범위를 유지하기 위해서입니다.
var a = b = c = d = 1;
은연중에 다음과 같은 선언을 하게 될 것입니다.b
,c
그리고.d
창경에
다음은 한 줄에 여러 변수를 표시하는 새로운 ES6 방법입니다.
const person = { name: 'Prince', age: 22, id: 1 };
let {name, age, id} = person;
console.log(name);
console.log(age);
console.log(id);
* 변수 이름과 개체 인덱스가 같아야 합니다.
OP가 요청한 내용을 구체적으로 설명합니다. 같은 값을 가진 N개의 변수를 초기화하려는 경우(예:0
), Array destructuring and Array.fill을 사용하여 변수에 N개의 배열을 할당할 수 있습니다.0
s:
let [a, b, c, d] = Array(4).fill(0);
console.log(a, b, c, d);
압축된 형식은 다음과 같습니다.
var a, b = a = "Hi";
& 3개 변수의 경우:
var x, y, z = x = y = "Hello";
도움이 되길 바랍니다!
그들이 같은 가치를 가지면 이것을 합니다.
let x = y = z = 0
그렇지않으면
let [x, y, z] = [10, 30, 50]
console.log(x, y, z) // 10 30 50
이 작업은 숫자와 문자열로만 수행할 수 있습니다.
당신이 할 수 있는 건...
var a, b, c; a = b = c = 0; //but why?
c++;
// c = 1, b = 0, a = 0;
이것은 완전히 정확합니다.
var str1 = str2 = str3 = "value";
값 중 하나를 변경하면 다른 변수의 값은 변경되지 않습니다.
var str1 = str2 = str3 = "value";
/* Changing value of str2 */
str2 = "Hi Web!";
document.write("str1 = " + str1 + " - str2 = " + str2 + " - str3 = " + str3);
언급URL : https://stackoverflow.com/questions/4166785/javascript-how-to-define-multiple-variables-on-a-single-line
'programing' 카테고리의 다른 글
요소가 디바인지 확인합니다. (0) | 2023.10.04 |
---|---|
동적으로 생성된 Wordpress Wysiwyg Editor(wp_editor)가 제대로 표시되지 않음 (0) | 2023.10.04 |
Ajax 시나리오에서 오류를 반환하는 방법 (0) | 2023.10.04 |
Oracle 11GR2 TKPROF - 재귀적 콜 트리를 캡처하는 방법 (0) | 2023.10.04 |
$routeParams가 메인 컨트롤러에 비어 있습니다. (0) | 2023.10.04 |