[javascript] JSHint의 ‘+’오류 이전에 잘못된 줄 바꿈 설명

누군가 JSHint가 다음에 대해 불평하는 이유를 설명해 줄 수 있습니까?

window.location.href = String1
    + '#'
    + Sting2
    + '='
    + String3;

오류와 함께 Bad line breaking before '+' error

이 오류 는 다음과 같이 설명 된 laxbreak 옵션 으로 구성 할 수 있음을 이해합니다.

이 옵션은 코드에서 안전하지 않은 줄 바꿈에 대한 대부분의 경고를 표시하지 않습니다. 쉼표 우선 코딩 스타일에 대한 경고를 억제하지 않습니다. 이를 억제하려면 laxcomma를 사용해야합니다 (아래 참조).

이 설명은 꽤 간결하고 왜 이런 식으로 줄을 끊는 것이 처음부터 나쁘거나 느슨하게 간주되는지 궁금합니다.

나는 여기서 거룩한 전쟁을 시작하려는 것이 아니라 JSHint 사람들이 왜 이것이 나쁘다고 생각하는지에 대한 객관적인 대답을 찾고 있다는 것을 명심하십시오. 이 방식으로 줄 바꿈을 할 때 특정 통역사에게 잘못 될 수있는 것이있는 경우.



답변

자동 세미콜론 삽입 에 대한 가정에 영향 을 줄 수 있는 문을 피하는 스타일 가이드 입니다.

아이디어는 표현이 거기에서 끝나거나 다음 줄에서 계속 될 수 있는지 여부를 줄 끝까지 명확하게 만드는 것입니다.


답변

Jshint는 새 줄에서와 달리 줄 바꿈 앞에 +를 사용하면 잘못된 줄 바꿈으로 플래그를 지정하지 않습니다. 이렇게 :

window.location.href = String1 +
'#' +
Sting2 +
'=' +
String3;


답변

질문에 대한 직접적인 대답은 아니지만 규칙을 유지하고 경고를 수정하려는 인터넷 검색에서이 문제를 접하는 사람에게는 다음이 유용 할 수 있습니다.

Notepad ++를 사용하는 경우 (예 : JSLint 플러그인 사용) 다음 검색 및 바꾸기를 사용하여이 문제를 해결할 수 있습니다.

  • 무엇을 찾다: (\r\n|\n|\r)( *)\+
  • 다음으로 바꾸기 : (첫 번째 및 마지막 공백 포함) +$1$2 
  • 검색 모드 : 정규식

(Windows에서만 테스트되었지만 정규식은 Unix 또는 Mac OS 줄 끝에서도 작동해야합니다.)

비슷한 일에 대한하려면 ||, &&, ==, !=, <=또는 >=대신을 +, 이것을 사용 :

  • 무엇을 찾다: (\r\n|\n|\r)( *)(\|\||&&|==|!=|<=|>=)
  • 다음으로 바꾸기 : (첫 번째 및 마지막 공백 포함) $3$1 $2 

답변