używanie const, let i var w tym samym projekcie/kodzie

0

Jak w temacie. O ile żaden IDE nie "zabroni" mi czegoś takiego, o tyle są chyba jakieś "dobre praktyki", zgodnie z którymi tego nie powinienem robić. Więc co, w nowych projektach definitywnie nie używać var?

2

A po co chciałbyś korzystać z var? let też powinno być jak najmniej.

4

wady var:

  1. zasięg od razu na całą funkcję, niezależnie gdzie zadeklarujesz (const i let mają zasięg na blok, więc są wygodniejsze w obsłudze i nie wymagają sztuczek z IIFE).

    np. chcemy wyświetlać liczby w callbacku i ten kod nie zadziała z var:

function foo(a) {
	for (var i = 0; i < 10; i++) {
		setTimeout(() => {
			console.log(i) // WTF!!!! pokaże zawsze 10, jeśli używasz var
		}, 0);
	}
}

z let zadziała (używając var robiło się tak, że opakowywało się to w wewnętrzną funkcję i od razu się wywoływało podając aktualną wartość i)

  1. możesz się odwoływać do zmiennych, zanim je zainicjalizujesz:
function foo() {
	console.log(a); // przypuszczalnie pomyłka programisty
	var a = 10;
}

let i const mają temporary dead zone, która chroni przed tym i jak spróbujesz się dostać do zmiennej przed deklaracją, to zgłosi błąd

  1. nie ma błędu, jak kilka razy zadeklarujesz to samo
function foo(a) {
	var a = 10; // let i const dają już tu błąd
}

Ogólnie więc... po co używać var w nowych projektach?

3

Używaj wszędzie const, chyba że musisz zredefiniować zmienną, wtedy let. Nie używaj var nigdy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1