W JavaScript typ wartości w zmiennej wynika z tego, co do niej przypisujesz. W deklaracji var x="true"; po znaku równości znajduje się literał w cudzysłowie. Cudzysłowy (pojedyncze lub podwójne) oznaczają, że jest to tekst, czyli typ string. To, że w środku jest słowo true, nie ma znaczenia dla typu — nadal jest to tylko ciąg znaków.
Dlatego odpowiedź "string (ciąg znaków)." jest poprawna: zmienna przechowuje napis, który można np. łączyć z innymi napisami, przycinać, porównywać jak tekst itp.
Dlaczego pozostałe odpowiedzi nie pasują?
- "liczbowego." — typ number dotyczy wartości liczbowych (np. 123, 3.14). Tutaj nie ma liczby, tylko tekst w cudzysłowie.
- "logicznego." — typ boolean przyjmuje wyłącznie wartości true lub false bez cudzysłowów. Zapis var x=true; tworzy boolean, ale var x="true"; tworzy string.
- "nieokreślonego (undefined)." — undefined pojawia się, gdy zmienna nie ma przypisanej wartości (np. var x;) albo gdy przypiszesz undefined. Tu wartość została jawnie ustawiona na napis, więc nie jest to undefined.
Wskazówka egzaminacyjna: jeśli widzisz cudzysłowy, myśl "string". Jeśli widzisz słowa true/false bez cudzysłowów, myśl "boolean". Możesz też w praktyce sprawdzić typ operatorem typeof: typeof x zwróci "string" dla tego przykładu.