Quindi quella condizione if fa riferimento a td e non a html?
No, la condizione if serve solo a verificare se la variabile (o meglio, la costante) classeCella risulta popolata, così come hai fatto per la condizione successiva, if(ProgrammaUrl). Quello che fa riferimento al td è proprio la parola chiave this.

smontando per così dire la condizione, e considerando D3 (e non vanilla per evitare casini...) , come dovrei leggerla?
Nota che nella condizione ho omesso le parentesi graffe perché è possibile farlo quando lo statement della condizione è costituito solo da una riga di codice.

Quella stessa condizione può essere scritta così:
codice:
if (classeCella){
    d3.select(this).classed(classeCella, true);
}
non conosco il metodo .classed()
Il metodo classed() aggiunge o rimuove le classi CSS.
Basterebbe consultare la documentazione, vedi qui.

Ad ogni modo, lo stesso risultato puoi ottenerlo col metodo attr() che forse ti è più familiare.

Puoi quindi scrivere la condizione in questo modo:
codice:
if (classeCella){
    d3.select(this).attr("class", classeCella);
}