2016-06-07 5 views
-2

JS에 관해서 몇 가지 질문이 있습니다.자바 스크립트 : 변수 생성에 대한 조언

함수에서 무엇인가를 반환해야 할 때 일반적으로 변수를 생성 한 다음 변수를 반환합니다. 변수를 먼저 작성한 다음 값을 반환하면 좋지 않은 것처럼 보일뿐입니다. 값. 사실입니까? 이 이유?

함수 맨 위에 변수를 만들거나 필요한 경우 변수 만 만들 수 있습니까?

저는 함수의 맨 위에 모든 변수를 작성했습니다. 변수를 사용해야 할 때만 변수를 작성하는 것이 유리합니까? 나는 ES 2015와 다른 장소 인 ES 5를 사용하고 있습니다.

내가 확인하고 싶은 마지막 것은 즉

var myFirstVariable = 1; 
    var mySecondVariable = 2; 
    var myThirdVariable = 3; 

var myFirstVariable = 1, 
     mySecondVariable = 2, 
     myThirdVariable = 3; 

합니까 중 하나 스타일의 원인 문제 대 한 줄에 변수 나 별도의 라인의 생성을입니까?

+0

첫 번째 질문과 세 번째 질문은 하나의 스타일이 다른 것보다 읽기 쉽다면 사용하십시오. 두 번째 변수는 변수 선언이 어쨌든 발생하기 때문에 중요하지 않습니다. 모든'var' 선언을 함수의 맨 위에 놓고 나중에 정의 할 수 있습니다. – Xufox

+0

이 모든 것은 순전히 개인적인 취향에 기초합니다. 어떤 사람들은 불필요하게 말로 생각하고, 다른 사람들은 철자를 쓰는 것을 좋아합니다. – Bergi

+2

또 다른 한 가지 : 한 게시물에 세 가지 질문을하지 마십시오. 게시물 당 하나의 질문을하십시오. – Xufox

답변

3

나는 함수에서 뭔가를 반환해야 그때 나는 일반적으로 변수를 만든 다음 변수를 반환, 이것은 내가 변수를 먼저 만든 다음 값을 반환하고 있어요로서 어쩌면 나쁜 관행을 보인다 나는 그 값을 돌려 줄 수있을 뿐이다. 사실입니까? 이유는 뒤에 있습니까?

이것은 주로 코딩 스타일의 것입니다. 변수에 다른 용도가 없다면 먼저 로컬 변수에 할당 할 이유가 없으므로 먼저 변수를 로컬 변수에 할당하지 않고 직접 값을 반환 할 수 있습니다. 이 값이 반환되기 전에 다른 값에 사용되는 경우이 값을 두 번 이상 계산하지 않으려면 로컬 변수에 할당해야 할 수 있습니다. 이 예를 들어

:

function multiply(x, y) { 
    var val = x * y; 
    return val; 
} 

정말 val 변수에 대한 이유가 없습니다. 당신은 쉽게 수행 할 수 있습니다

function multiply(x, y) { 
    return x * y; 
} 

오늘의 통역 반환 값 이외의 다른 용도가없는 그들을 밖으로 최적화 있지만, 대부분의 사람들이 당신이 추가로 사용하지 않도록해야한다고 제안 로컬 변수를 인식 할 정도로 아마 똑똑 필요하지 않으며 다른 용도로 사용되지 않는 코드 라인.

변수의 맨 위에 변수를 만들거나 변수를 만들 때는 이 필요합니까?

다시 코딩 스타일을 선택합니다. 모든 var 자바 스크립트의 선언은 함수 범위의 맨 위로 끌어 올려 지므로 나중에 함수의 범위에서 인라인 대 우선 인라인으로 선언되는지 여부는 기술적으로 중요하지 않습니다. 최대 코드 가독성과 관련하여 두 가지 모두에 대한 합법적 인 상황이 있습니다.이 블록 내에서 선언하거나하는 경우가 블록 내 또는 기능의 상단 선언 여부 let 선언 있지만 차이에 차이가 있으므로

let 선언 용기 블럭의 선두에 게양되고 블록의 맨 위에.

내가 확인하고 싶은 마지막 것은 당신의 두 번째 옵션은 한 줄에 변수 또는 별도의 라인

의 창조 :

var myFirstVariable = 1, 
    mySecondVariable = 2, 
    myThirdVariable = 3; 

단순히 덜 입력이지만, 기능상으로 귀하의 첫 번째 옵션과 다를 바 없습니다. 대부분의 사람들은 쉼표를 사용하여 여러 개의 연속 된 선언을 구분하는 것을 선호하지만 기능적 차이가 없기 때문에 타이핑을 최소화하기위한 코딩 스타일 선택입니다.

+1

또한'let' (사용자가'es6'라고 태그를 붙이기 때문에) – zerkms

+0

@zerkms -'let '에 대한 정보를 추가했습니다. – jfriend00

+0

수동으로'let' 변수를 맨 위에두면 의미가 없습니다. 'let'과'const' 변수는 초기화 된 곳에서 선언되어야합니다. TDZ는 "모든 것을 위에서 선언"스타일로 이끌어 낸 문제를 정확히 해결하기 위해 고안되었습니다. ES6에서 더 이상 사용할 이유가 없습니다. – Bergi