Jshint: 일반 λ§€κ°œλ³€μˆ˜λŠ” κΈ°λ³Έ λ§€κ°œλ³€μˆ˜ λ‹€μŒμ— 였면 μ•ˆ λ©λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 03μ›” 31일  Β·  19μ½”λ©˜νŠΈ  Β·  좜처: jshint/jshint

> jshint -v
jshint v2.9.1

λ™μž‘μ„ ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•œ 파일:

var a = function(x = 1, i) {}

jshint a.js 의 결과

a.js: line 1, col 26, Regular parameters should not come after default parameters.

1 error

.jshintrc :

{
  "asi": true,
  "esversion": 6
}
Needs Discussion

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@derwaldgeist λ¬Όλ‘ μž…λ‹ˆλ‹€! λ‹€μŒμ€ κ²½κ³ λ₯Ό λ¬΄μ‹œν•˜λŠ” .jshintrc 파일의 μ˜ˆμž…λ‹ˆλ‹€.

{
  "esversion": 6,
  "-W138": true
}

λͺ¨λ“  19 λŒ“κΈ€

이 λ©”μ‹œμ§€λŠ” μ›λž˜ JSHint "였λ₯˜"둜 κ΅¬ν˜„λ˜μ—ˆμŠ΅λ‹ˆλ‹€(즉,
λ¬΄μ‹œν•  수 μ—†μŒ): gh-1779. μ΄ˆκΈ°μ— SyntaxErrorμ˜€μ„ 수 μžˆμ§€λ§Œ
μ΄ˆμ•ˆμ€ 그런 μ‹μœΌλ‘œ λ§ˆλ¬΄λ¦¬λ˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ gh-2543μ—μ„œ μš°λ¦¬λŠ” "λ‹€μš΄κ·Έλ ˆμ΄λ“œ"ν–ˆμŠ΅λ‹ˆλ‹€.
κ²½κ³  λ©”μ‹œμ§€. 이것은 λ‹€μŒμ„ 톡해 JSHint 2.9.1μ—μ„œ λ¬΄μ‹œν•  수 μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.
-W138 .

κ·ΈλŸ¬λ‚˜ 이 κ²½κ³ κ°€ μ μ ˆν•œμ§€ μ—¬λΆ€λŠ” μ—¬μ „νžˆ λΆˆλΆ„λͺ…ν•©λ‹ˆλ‹€. NS
개인적으둜 μ΄λ ‡κ²Œ μ„€κ³„λœ κΈ°λŠ₯은 μ‚¬μš©ν•˜κΈ° μ–΄λ ΅λ‹€κ³  μƒκ°ν•˜μ§€λ§Œ,
잠재적인 μ½”λ“œ μ•ˆμ „ 문제λ₯Ό 식별할 수 μ—†μŠ΅λ‹ˆλ‹€.

@rwaldron @caitp λ‘˜ λ‹€ 이것에 λŒ€ν•΄ 생각이 μžˆμŠ΅λ‹ˆκΉŒ?

그런 μ’…λ₯˜μ˜ μ„œλͺ…은 redux μ½”λ“œ μƒ˜ν”Œμ˜ μΌλΆ€λΌλŠ” 것을 μ–ΈκΈ‰ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. λ‹€μŒ 라인을 μ°ΎμœΌμ‹­μ‹œμ˜€.

function counter(state = 0, action) {

κ·Έλž˜μ„œ 널리 μ‚¬μš©λ˜λŠ” IMHOμž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ μ’…λ₯˜μ˜ νŒ¨ν„΄μ€ _μ ˆλŒ€μ μœΌλ‘œ_ "보풀"의 μ •μ˜μž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ 널리 μ‚¬μš©λ˜λŠ” IMHOμž…λ‹ˆλ‹€.

λ‚˜λŠ” redux에 λ‚˜νƒ€λ‚˜λŠ” νŒ¨ν„΄μ΄ "널리 μ‚¬μš©λ˜λŠ”" 무언가λ₯Ό λ‚˜νƒ€λ‚Έλ‹€λŠ” μ•”μ‹œμ— κ°•λ ₯ν•˜κ²Œ λ™μ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” reduxλ₯Ό μ‚΄νŽ΄λ³΄κ³  counter(undefined, action) 예λ₯Ό μ°Ύμ•˜κ³ , 이 쀑 ν•˜λ‚˜κ°€ μ‹€μ œλ‘œ action 인수λ₯Ό _ν•„μš”λ‘œ _ν•˜κ±°λ‚˜ λŸ°νƒ€μž„μ— μ§λ©΄ν•œλ‹€λŠ” 점을 κ³ λ €ν•  λ•Œ 이것이 무엇일 수 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. 였λ₯˜. action κ°€ _항상_ ν•„μˆ˜μ΄κ³  state κ°€ 선택 사항인 경우 undefined λͺ…μ‹œμ μœΌλ‘œ 전달해야 ν•˜λŠ” require ν˜ΈμΆœμ€ κΈ°λ³Έ λ§€κ°œλ³€μˆ˜ κ°’μ˜ λͺ©μ μ„ λ¬΄νš¨ν™”ν•©λ‹ˆλ‹€ .

...버그λ₯Ό μ‹ κ³ ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.


κ·ΈλŸ¬λ‚˜ 이 κ²½κ³ κ°€ μ μ ˆν•œμ§€ μ—¬λΆ€λŠ” μ—¬μ „νžˆ λΆˆλΆ„λͺ…ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 그것이 μžˆλ‹€κ³  믿으며 κ²½κ³ λ₯Ό μ›ν•˜μ§€ μ•ŠλŠ” μ‚¬λžŒμ€ 그것을 끌 수 μžˆμŠ΅λ‹ˆλ‹€.

이 @jugglinmike λ₯Ό λ‹«μœΌ

@rwaldron ok, μ‹€μ œλ‘œ μš°λ¦¬λŠ” redux에 λŒ€ν•΄ λ…Όμ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬ν•œ μ„œλͺ…κ³Ό ν•¨κ»˜ λ‚˜νƒ€λ‚  수 μžˆλŠ” 였λ₯˜ μƒ˜ν”Œμ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?
λ‚˜μ—κ²Œ 그것은 단지 μ–Έμ–΄μ˜ μ†μ„±μž…λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ "잘λͺ»"으둜 ν‘œμ‹œν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

κ·ΈλŸ¬ν•œ μ„œλͺ…κ³Ό ν•¨κ»˜ λ‚˜νƒ€λ‚  수 μžˆλŠ” 였λ₯˜ μƒ˜ν”Œμ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

λ°œμƒν•˜κ²Œ 될 μœ μΌν•œ λŸ°νƒ€μž„ 였λ₯˜λŠ” counter() 및 counter(undefined) 와 같이 ν˜ΈμΆœν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 그것은 제 μš”μ μ΄ μ•„λ‹™λ‹ˆλ‹€. λ‚΄ μš”μ μ€ 그것이 λ”μ°ν•œ λ””μžμΈμ΄κ³  ν”„λ‘œκ·Έλž˜λ¨Έμ™€ κ·Έλ“€μ˜ 도ꡬ에 κ³Όλ„ν•œ 뢀담을 μ€€λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μΆ•μ†ŒκΈ°λŠ” λ‹€μŒμ„ ν•©λ¦¬μ μœΌλ‘œ 뢄석할 수 μžˆμŠ΅λ‹ˆλ‹€.

function counter(action, state = 0) {
  return [action, state];
}
counter({});
counter({}, 0);
counter({}, undefined);

그리고 생산:

function c(a,s=0){return[a,s]}
c({});
c({});
c({});

λ°˜λ©΄μ— 기본값을 λ¨Όμ € λ‘μ‹­μ‹œμ˜€.

function counter(state = 0, action) {
  return [state, action];
}
counter(0, {});
counter(undefined, {});

λ‹€μŒμ„ 생성할 κ²ƒμž…λ‹ˆλ‹€:

function c(s=0,a){return[s,a]}
c(0, {});
c(undefined, {});

이것은 μƒλ‹Ήνžˆ μΈμœ„μ μΈ μ˜ˆμ΄μ§€λ§Œ μ—¬μ „νžˆ κΈ°λ³Έ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ™„μ „νžˆ λ¬΄μ˜λ―Έν•˜λ‹€λŠ” 제 μš”μ μ„ λ³΄μ—¬μ€λ‹ˆλ‹€.

λ‚˜μ—κ²Œ 그것은 단지 μ–Έμ–΄μ˜ μ†μ„±μž…λ‹ˆλ‹€.

ν•  수 μžˆλ‹€κ³  ν•΄μ„œ λ°˜λ“œμ‹œ ν•΄μ•Ό ν•˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€.

κ·Έλž˜μ„œ ν˜„μž¬λ‘œμ„œλŠ” μΆ•μ†ŒκΈ°μ˜ 버그에 λŒ€ν•΄ κ±±μ •ν•˜λŠ” 것 μ™Έμ—λŠ” μ™œ λ‚˜μœ λ””μžμΈμΈμ§€ μ„€λͺ…ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

잘λͺ» μ„€κ³„λœ 호좜 μ„œλͺ…을 ν”Όν•˜κΈ° μœ„ν•΄ λͺ¨λ“  호좜 μ‚¬μ΄νŠΈμ—μ„œ λͺ…μ‹œμ μΈ undefined λ₯Ό μ „λ‹¬ν•˜λ„λ‘ μš”κ΅¬ν•˜λŠ” 것은 잘λͺ»λœ κ΄€ν–‰μ΄μž κΈ°λ³Έ λ§€κ°œλ³€μˆ˜μ˜ 잘λͺ»λœ μ‚¬μš©μœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€.

이 λ™μž‘μ€ React/Reduxμ—μ„œ ꢌμž₯ν•©λ‹ˆλ‹€. React/Reduxλ₯Ό μ œκ±°ν•˜λŠ” 것보닀 jshin을 μ œκ±°ν•  κ°€λŠ₯성이 더 ν½λ‹ˆλ‹€./

http://redux.js.org/docs/basics/Reducers.html

ν•œ 가지 κΉ”λ”ν•œ νŠΈλ¦­μ€ ES6 κΈ°λ³Έ 인수 ꡬ문을 μ‚¬μš©ν•˜μ—¬ 더 κ°„κ²°ν•œ λ°©μ‹μœΌλ‘œ μž‘μ„±ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

κΈ°λŠ₯ todoApp(μƒνƒœ = 초기 μƒνƒœ, μž‘μ—…) {
// μ§€κΈˆμ€ μ–΄λ–€ μž‘μ—…λ„ μ²˜λ¦¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
// 그리고 μš°λ¦¬μ—κ²Œ 주어진 μƒνƒœλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
λ°˜ν™˜ μƒνƒœ
}

@jugglinmike wdyt ^^ ?

@txm ν•œλ²ˆλ„ μ‚¬μš©ν•˜μ§€ μ•Šμ€ action λ§€κ°œλ³€μˆ˜λŠ” μ–΄λ–»κ²Œ λ˜λ‚˜μš”?

λ‚˜λŠ” μ—¬μ „νžˆ κ°€μ‹œμ μΈ μœ„ν—˜μ΄ μ—†λŠ” ν•œ(심지어
그렇지 μ•ŠμœΌλ©΄ λ°”λžŒμ§ν•˜μ§€ μ•Šμ€ νŒ¨ν„΄μ˜ 쑴재), JSHintλŠ” 침묡을 μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.
즉, @txm 의 μ˜ˆμ œκ°€ μ–΄λ–»κ²Œ κ΅¬λ³„λ˜λŠ”μ§€ μ΄ν•΄ν•˜λŠ” 데 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ–΄λ–»κ²Œ λΉ„ν™œμ„±ν™” ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@thalesfsp : /* jshint -W138 */ μΆ”κ°€ 파일의 μ‹œμž‘ 뢀뢄을 μΆ”κ°€ν•©λ‹ˆλ‹€. (jshint v2.9.1 이상을 μ‚¬μš©ν•˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€)

Redux와 λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. .jshintrc ꡬ성 νŒŒμΌμ—μ„œ λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@derwaldgeist λ¬Όλ‘ μž…λ‹ˆλ‹€! λ‹€μŒμ€ κ²½κ³ λ₯Ό λ¬΄μ‹œν•˜λŠ” .jshintrc 파일의 μ˜ˆμž…λ‹ˆλ‹€.

{
  "esversion": 6,
  "-W138": true
}

(그런데 JSHint의 λ¬Έμ„œ μ—λŠ” νŠΉμ • κ²½κ³  λΉ„ν™œμ„±ν™”μ— λŒ€ν•œ μžμ„Έν•œ 정보가 μžˆμŠ΅λ‹ˆλ‹€.)

@jugglinmike κ°μ‚¬ν•©λ‹ˆλ‹€. .jshintrc νŒŒμΌμ—μ„œλ„ "-Wxxx" ꡬ문을 μ‚¬μš©ν•  수 μžˆλŠ”μ§€ λͺ°λžμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 항상 이것을 파일의 맨 μœ„μ— μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. μ•Œμ•„λ‘λ©΄ μ’‹μ•„μš”!

'콜백'이 ν•¨μˆ˜μ˜ λ§ˆμ§€λ§‰ λ§€κ°œλ³€μˆ˜λ‘œ 널리 μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ— 이 보푸라기 κ²½κ³ λŠ” λ‚˜μ—κ²Œ λ‹€μ†Œ 어리석은 κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

openDialog(URL, 이름, 인수 = {}, μœ„μΉ˜) {
return new Promise(function(resolve, reject) {
chrome.windows.create({
URL: URL,
μœ ν˜•: "νŒμ—…",
λ„ˆλΉ„: pos && pos.width || μ°ΎμœΌμ‹œλŠ” μ£Όμ†Œκ°€ μ—†μŠ΅λ‹ˆλ‹€,
높이: pos && pos.height || μ°ΎμœΌμ‹œλŠ” μ£Όμ†Œκ°€ μ—†μŠ΅λ‹ˆλ‹€,
μ™Όμͺ½: pos && pos.left || μ°ΎμœΌμ‹œλŠ” μ£Όμ†Œκ°€ μ—†μŠ΅λ‹ˆλ‹€,
상단: pos && pos.top || μ°ΎμœΌμ‹œλŠ” μ£Όμ†Œκ°€ μ—†μŠ΅λ‹ˆλ‹€
}, ν•¨μˆ˜(w) {

λΆ„λͺ…νžˆ λ‹€λ₯Έ λ§€κ°œλ³€μˆ˜λ₯Ό undefined 것이 μœ νš¨ν•˜λ©° 린트 ν”„λ‘œμ„ΈμŠ€λ₯Ό ν†΅κ³Όν•©λ‹ˆλ‹€. λ‚˜λŠ” 그것이 더 λ‚˜μ€ νŒ¨ν„΄μ΄λΌκ³  λ§ν•˜μ§€λŠ” μ•Šμ§€λ§Œ 보풀 과정을 ν†΅κ³Όν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰