내가 사용하는 경우 :
1.09 * 1; // returns "1.09"
하지만 내가 사용한다면 :
1,09 * 1; // returns "9"
1,09가 숫자가 아니라는 것을 알고 있습니다.
마지막 코드에서 쉼표는 무엇을합니까?
더 많은 예
if (0,9) alert("ok"); // alert
if (9,0) alert("ok"); // don't alert
alert(1); alert(2); alert(3); // 3 alerts
alert(1), alert(2), alert(3); // 3 alerts too
alert("2",
foo = function (param) {
alert(param)
},
foo('1')
)
foo('3'); // alerts 1, 2 and 3
답변
쉼표 연산자는 두 피연산자 (왼쪽에서 오른쪽으로)를 모두 평가하고 두 번째 피연산자의 값을 반환합니다.
출처 : https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special_Operators/Comma_Operator
예를 들어 표현식은로 1,2,3,4,5
평가됩니다 5
. 분명히 쉼표 연산자는 부작용이있는 작업에만 유용합니다.
console.log(1,2,3,4,5);
console.log((1,2,3,4,5));
답변
답변
쉼표 연산자는 두 피연산자 (왼쪽에서 오른쪽으로)를 모두 평가하고 피연산자의 값을 반환합니다second
.
https://stackoverflow.com/a/3561056/5934465
이럴거야!
쉼표 연산자는 각 피연산자를 평가하고 (왼쪽에서 오른쪽으로)
last
피연산자 의 값을 반환합니다 .
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator
답변
보라 여기 – 쉼표는 여러 표현 / 문을 의미합니다. 예를 들어 코드에서 다음과 같은 줄을 사용할 수 있습니다.
var a=0, b=0, c=0;
이것은 작성하지 않고 세 변수를 모두 선언합니다.
var a=0;
var b=0;
var c=0;
도움이되기를 바랍니다.
답변
객체에 속성을 추가 / 수정 하고 동일한 줄에 반환하는 것은 가능한 사용 사례입니다.
console.log(
((x) => (o = {biggerCond: r => r >= x},
o.r5 = Array.from(window.crypto.getRandomValues(new Uint16Array(5))),
o.isAnyBigger = o.r5.some(o.biggerCond),
o.bigger = o.isAnyBigger ? o.r5.filter(o.biggerCond) : [x], o )
)(5e4)
);
// Example
// {
// bigger: [58414, 56500, 63397],
// isAnyBigger: true,
// isBiggerCond: r => r >= x,
// r5: [58414, 12015, 56500, 63397, 43861]
// }
위의 익명 함수는 입력 값보다 큰 임의 값을 가진 객체를 반환하거나,없는 경우 bigger
속성 에 포함 된 배열에 입력 값 자체를 포함 합니다.
그것은 여전히 ( 화살표 함수 와 같은) 구문상의 설탕 이지만 줄 수를 줄입니다 … 일부 JS minifier가 유사한 방식으로 코드를 자동으로 감지하고 조정하는지 궁금합니다. 콘솔에서 실행하십시오.
((x)=>(o={biggerCond:r=>r>=x},o.r5=Array.from(window.crypto.getRandomValues(new Uint16Array(5))),o.isAnyBigger=o.r5.some(o.biggerCond),o.bigger=o.isAnyBigger?o.r5.filter(o.biggerCond):[x],o))(5e4)