Natürlich. Du weist
data.lengthden Wert0zu. Dieser Wert wird auch als Ergebnis der Zuweisung zurückgegeben.0ist falsy, d.h. beiif(0)landest du immer im else-Zweig, es wird immer „data ok!“ ausgegeben.
Das erklärt wieso der else-Zweig betreten wird, es erklärt auch warum die for-Schleife nicht ausgeführt wird: Mit data.length = 0 werden alle Elemente aus dem Array gelöscht.