Zamieszczony w ramce fragment skryptu w języku JavaScript
t="Ala ma kota."; s=t.length;
alert(s).s trafia wartość t.length, czyli liczba znaków, a nie sam tekst.length to właściwość z długością tekstu; fragment zwraca substring().t.length zwraca długość tekstu (12 znaków), która trafia do zmiennej s.Pytanie z egzaminu CKE, styczeń 2015 (arkusz E.14-X-15.01).
Zapis s=t.length; odczytuje właściwość length łańcucha zapisanego w zmiennej t i przypisuje wynik zmiennej s. Tekst "Ala ma kota." ma 12 znaków, bo liczą się też spacje i kropka, więc s przyjmie wartość 12.
length to właściwość, a nie metoda, dlatego pisze się ją bez nawiasów: t.length() zakończyłoby się błędem, bo liczby nie da się wywołać jak funkcji. Ta sama właściwość działa dla tablic i zwraca liczbę elementów. W praktyce używa się jej na przykład przy sprawdzaniu, czy hasło wpisane w formularzu ma odpowiednią długość: if (haslo.length < 8).
Wybór błędnej interpretacji zwykle wynika z niedokładnego odczytania prawej strony przypisania. Gdyby skrypt miał przypisać do s zmienną t, wystarczyłby zapis s=t;. Dopisek .length sprawia, że do s trafia nie tekst, tylko liczba.
Fragment nie wyświetla też niczego. Przypisanie tylko zapisuje wartość w pamięci, a do pokazania wyniku potrzebne byłoby na przykład alert(s), console.log(s) lub document.write(s).
Nie powstaje również fragment tekstu. length to wbudowana właściwość łańcucha, a nie zmienna określająca długość wycinka. Fragment napisu zwracają metody substring() lub slice(), na przykład t.substring(0, 3) daje „Ala”. Kod zapisuje więc w s długość tekstu, czyli 12.
Przy takich zadaniach warto czytać przypisanie od prawej strony: najpierw ustalić, jaką wartość daje wyrażenie, a dopiero potem, do której zmiennej ta wartość trafia.