[javascript] JavaScript에서 = + _의 의미

JavaScript에서 = + _ 연산자가 무엇을 의미 하는지 궁금합니다 . 과제를 수행하는 것처럼 보입니다.

예:

hexbin.radius = function(_) {
   if (!arguments.length)
       return r;
   r = +_;
   dx = r * 2 * Math.sin(Math.PI / 3);
   dy = r * 1.5;
   return hexbin;
};



답변

r = +_;
  • +_숫자에 관계없이 캐스팅하려고합니다 .
  • _변수 이름 만 (연산자가 아님) a, foo등 이 될 수 있습니다 .

예:

+"1"

“1”을 순수한 숫자 1로 캐스트하십시오.

var _ = "1";
var r = +_;

r지금 1은 아닙니다 "1".

또한 산술 연산자MDN 페이지에 따르면 :

단항 더하기 연산자는 피연산자 앞에 오며 피연산자로 평가되지만 숫자가 아닌 경우에는 피연산자 로 변환하려고 시도합니다 . […] 는 정수와 플로트 문자열 표현뿐만 아니라 문자열이 아닌 값을 변환 할 수있는 true, false그리고 null. 10 진수 및 16 진수 (- "0x"접두사) 형식의 정수 가 지원됩니다. 음수가 지원됩니다 (16 진수는 아님). 특정 값을 구문 분석 할 수 없으면로 평가됩니다 NaN.

또한 주목된다

단항 플러스는 무언가를 숫자로 변환하는 가장 빠르고 선호되는 방법입니다


답변

할당 연산자가 아닙니다.

  • _ 함수에 전달 된 매개 변수 일뿐입니다.

    hexbin.radius = function(_) {
                    //       ^ It is passed here
        // ...
    };
  • 다음 줄에서 r = +_; +infront는 해당 변수 ( _)를 숫자 또는 정수 값으로 캐스팅하여 변수에 할당합니다.r

+=운영자 와 혼동하지 마십시오


답변

=+실제로 이 개 운영하는 =할당하고 +_변수 이름입니다.

처럼:

i = + 5;
or
j = + i;
or
i = + _;

다음 코드는 문자열int=+ 로 변환하는 사용법을 보여 줍니다 .
예:

y = +'5'
x = y +5
alert(x);

출력 10

사용 : 그렇지 않으면 여기 y에 int 5=+
있습니다.

y = '5'
x = y +5
alert(x);

출력 55

_변수는 어디에 있습니까 ?

_ = + '5'
x = _ + 5
alert(x)

출력 10

또한,~ (string이 int string (floatint 로 반올림 됨 ) 인 경우
와 동일한 결과를 얻을 수 있다는 것을 알고 흥미로울 것입니다 )

y = ~~'5'  // notice used two time ~
x = y  + 5
alert(x);

또한 출력 10

~비트 단위 NOT : 피연산자의 비트를 반전시킵니다. 나는 크기의 변화없이 두 번했다.


답변

아닙니다 =+. JavaScript에서 +숫자로 변경하는 것을 의미합니다.

+'32' 32를 반환합니다.

+'a' NaN을 반환합니다.

따라서 isNaN()숫자로 변경할 수 있는지 확인하는 데 사용할 수 있습니다.


답변

비열한 것입니다.

여기서 중요한 점은 밑줄 문자 는 실제로 연산자가 아니라 변수 이름이라는 것 입니다.

그 앞에 더하기 부호는 밑줄의 양수 값을 가져옵니다. 즉 밑줄 변수를 효과적으로 int로 캐스팅합니다. 와 같은 효과를 얻을 수 parseInt()있지만 더하기 기호 더하기는 더 간결하기 때문에 여기에서 사용될 수 있습니다.

그리고 그것은 단지 등호를 표준 변수 할당으로 남겨 둡니다.

숙련 된 Javascript 프로그래머가 일반적으로 밑줄을 변수로 인식하므로 혼동하기 위해 의도적으로 작성 되지는 않았을 것입니다 . 그러나 당신이 그것을 모른다면 그것은 매우 혼란 스러울 것입니다. 나는 그것을 그렇게 쓰지 않을 것입니다. 나는 최고의 의미에서 짧은 의미없는 변수 이름의 팬이 아닙니다. 공간을 절약하기 위해 JS 코드에서 짧은 변수 이름을 원한다면 축소기를 사용하십시오. 짧은 변수로 작성하지 마십시오.


답변

= + _는 _를 숫자로 변환합니다.

그래서

var _ = "1",
   r = +_;
console.log(typeof r)

숫자를 출력합니다.


답변

나는 당신이 의미한다고 생각 r = +_;합니까? 이 경우 매개 변수가로 변환 Number됩니다. 말은 _’12입니다 0.3 ‘, 다음 +'12.3'반환 12.3. 따라서 인용문에서에 +_할당됩니다 r.