2012-03-02 3 views
2

:Javascript에서 "i = + i"는 무엇을 의미합니까? JQuery와 소스에서

eq: function(i) { 
    i = +i; 
    return i === -1 ? 
     this.slice(i) : 
     this.slice(i, i + 1); 
}, 

는 반드시 int로 난을 구문 분석 메이크업에 사용인가?

+2

가능한 http://stackoverflow.com/questions/5450076/whats-the-significant-use-of-unary-plus-and-minus-operators 중복 – scibuff

+1

@scibuff'VAR I = -5; i = + i; console.log (i);'.... 여전히 음수 (기본 수학). –

+0

@scibuff : 어떻게 그렇게? 그 질문의 처음 몇 단어가 이것에 대한 답입니다. –

답변

5

은 내가 int로 확인 구문 분석을 위해 사용인가?

는 아니, i (중 float 또는 int)이 있는지 확인합니다. 함수가 수행하는 것을 감안할 때 i을 10 진수가 아닌 값으로 변환하는 것이 더 좋았습니다. slice이 소수를 처리하는 방법을 모르겠습니다.

더 많은 정보 : MDN - Arithmetic Operators

+1

'slice'는 [ToInteger] (http://es5.github.com/#x9.4) 작업을 통해 인수를 변환합니다. (기본적으로 소수점을 건네면 바닥에 깔려 있습니다.) –

+0

@ T.J.Crowder : Thanks :) –

3

거의 같지만, 입니다.

[ECMA-262: 11.4.6]: 단항 연산자 +Number 타입 피연산자 변환한다.

제조 UnaryExpression 다음과 같이 + UnaryExpression 평가된다 :

  1. EXPR가 UnaryExpression 평가 결과하자.
  2. Return ToNumber (GetValue (expr)).
2

예는 것 확실히 그것은 INT (또는 @Felix 말한대로 일반적으로 숫자)입니다. 이 코드를 사용해보십시오 :

var i = "2"; 
console.log(i === 2); // false 
console.log(+i === 2); // true 
2

예, 변수에 단항 +을 적용하는 보장은 (예를 들어 문자열) 다른 유형의, 그것은 converted to a number (하지 int로 가져가 있다면, 자바 스크립트가 발생하지 않는 것을의 int를 일부 작업에서는 내부적으로 사용하지만). 숫자는 소수 일 수 있으며 문자열 인 경우 JavaScript가 숫자를 구문 분석하는 일반적인 방법으로 구문 분석됩니다 (예 : +"0x10"16 10 진수).

0

+i 내가 숫자로 구문 분석되는지 확인합니다.

+0

뭐라고 요? 아닙니다. –

+0

잘못되었습니다. 'i + = i'는 실제 값 +1을 증가시킵니다! ** NOT **'i = + i' - http://www.devcurry.com/2011/07/unary-plus-operator-in-javascript.html – Smamatti

+0

구문 오류가 발생했습니다. 나는 또한 질문에 유용하지 않았기 때문에 이것을 삭제했다. –

관련 문제