JavaScript String and Events: string types; string functions (concat(), split(), indexOf(), lastIndexOf(), substring(), trim(), slice(), replace(), charAt())

JavaScript ની strings એ ન બદલાય એવું લખાણ છે, એટલે string ની દરેક પદ્ધતિ મૂળને બદલવાને બદલે **નવી** string પાછી આપે છે, અને ઓજારપેટીમાં જોડવું (concat), વહેંચવું (split), શોધવું (indexOf/lastIndexOf, જે ન મળે તો -1 આપે છે), કાઢવું (slice, substring, charAt), અને સાફ કરવું (trim, replace) આવે છે.

10 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

' aditi ' એ 'Aditi' નથી

એક student FestConnect માં પોતાનું નામ " aditi " તરીકે લખે છે, રખડતી જગ્યાઓ અને નાના અક્ષરો સાથે. તમને સ્વચ્છ "Aditi" જોઈએ છે, તમને "Aditi Shah" ને પહેલા અને છેલ્લા નામમાં વહેંચવું છે, અને તમારે ખાતરી કરવી છે કે email માં ખરેખર @ છે.

આ બધું string નું કામ છે. JavaScript ની strings પદ્ધતિઓની ઓજારપેટી સાથે આવે છે, પણ એ બધી એક નિયમ વહેંચે છે જે બધાને પછાડે છે: string ને ક્યારેય જગ્યા પર જ બદલી શકાતી નથી. દરેક પદ્ધતિ તમને નવી string આપે છે.

Formula

Strings બદલાતી નથી

તમે string ને સુધારી શકતા નથી; તમે ફક્ત એમાંથી નવી બનાવી શકો છો.

name.trim() એ name ને સાફ કરતું નથી. એ સાફ કરેલી નકલ પાછી આપે છે અને name ને અડ્યા વગર છોડે છે. તમારે એને પકડવી પડે:

name = name.trim();

સોંપવાનું ભૂલી જાઓ અને એવું લાગે છે કે પદ્ધતિએ 'કશું કર્યું જ નહીં'. આ એક નિયમ string ના મોટા ભાગના bugs સમજાવે છે. નીચેની દરેક પદ્ધતિ એવું મૂલ્ય પાછું આપે છે જે તમારે વાપરવું પડે.

At a glance

String ની ઓજારપેટી

પદ્ધતિશું કરે છેનોંધ
trim()કિનારીની જગ્યાઓ કાઢે છેનકલ પાછી આપે છે
split(sep)array માં તોડે છે"a b".split(" ")
indexOf(x)x નું પહેલું સ્થાનન મળે તો -1
lastIndexOf(x)x નું છેલ્લું સ્થાનન મળે તો -1
slice(a,b)a થી b-1 સુધીના અક્ષરોઋણ આંકડા ચાલે છે
charAt(i)i પરનો અક્ષરહદ બહાર હોય તો ""
replace(a,b)પહેલો મેળ બદલે છેબધા માટે replaceAll

Practical

FestConnect નામ સાફ કરે છે અને email તપાસે છે

let raw = "  aditi shah ";
let name = raw.trim();          // "aditi shah" (captured!)
console.log(raw);               // still "  aditi shah " (unchanged)

let parts = name.split(" ");    // ["aditi", "shah"]
console.log(parts[0], parts[1]);

let email = "aditi@x.com";
console.log(email.indexOf("@"));   // 5  (found)
console.log(email.indexOf("?"));   // -1 (not found)

console.log(email.slice(0, 5));    // "aditi"
console.log(email.charAt(0));      // "a"
console.log("a b c".replace(" ", "_")); // "a_b c" (first only)

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Think first

નામ ગંદું કેમ રહી ગયું?

એક student પોતાની લીટીમાં name.trim(); લખે છે, પછી name submit કરે છે અને એમાં હજી જગ્યાઓ છે. એ શું ભૂલી ગયો, અને સુધારેલી લીટી કઈ છે?

Show the answer

એ પરિણામ પકડવાનું ભૂલી ગયો. name.trim() સાફ કરેલી નકલ પાછી આપે છે પણ name ને બદલતું નથી, કારણ કે strings બદલાતી નથી. ઉકેલ છે એને પાછું સોંપવું: name = name.trim();. આ એક ટેવ, એટલે કે string ની પદ્ધતિઓ નવું મૂલ્ય પાછું આપે છે જે તમારે સંઘરવું પડે એ યાદ રાખવું, આખી ભાષાનો સૌથી સામાન્ય string નો bug અટકાવે છે.

Quiz

Email માં @ છે કે નહીં એ જોવા તમે `if (email.indexOf("@") )` તપાસો છો. આ કેમ ખોટું હોઈ શકે?

  1. જો @ સ્થાન 0 પર હોય, તો indexOf 0 પાછું આપે છે, જે ખોટા જેવું ગણાય છે, એટલે માન્ય કિસ્સો નકારાય છે
  2. indexOf true કે false પાછું આપે છે, આંકડો નહીં
  3. indexOf એ @ ના ચિહ્નને શોધી શકતું નથી
  4. કશું ખોટું નથી; આ હંમેશા બરાબર ચાલે છે
Show the answer

જો @ સ્થાન 0 પર હોય, તો indexOf 0 પાછું આપે છે, જે ખોટા જેવું ગણાય છે, એટલે માન્ય કિસ્સો નકારાય છે

indexOf સ્થાનનો આંકડો પાછો આપે છે, કે ન હોય તો -1, boolean નહીં. સ્થાન 0 એ ખરેખરો મેળ છે પણ એ ખોટા જેવું ગણાય છે, એટલે if (indexOf(...)) એ સાવ શરૂઆતના @ ને 'નથી મળ્યું' ગણે છે (A). વળી -1 એ સાચા જેવું ગણાય છે, એટલે ખૂટતું @ પસાર થઈ જાત. સાચી કસોટી સ્પષ્ટ છે: if (email.indexOf("@") !== -1). indexOf ચોક્કસ આંકડો પાછો આપે છે (B) અને @ શોધી શકે છે (C), એટલે 'હંમેશા ચાલે છે' (D) ખોટું છે.

Watch out

String ના ફાંદા

1. પરિણામ ન પકડવું: s.trim(), s.replace(...), s.toUpperCase() બધાં નકલો પાછી આપે છે. એમને સોંપો.

2. indexOf ને boolean તરીકે તપાસવું: એ સ્થાન કે -1 પાછું આપે છે. હંમેશા !== -1 સાથે સરખાવો, ક્યારેય સાચા/ખોટા જેવા ગણવા પર આધાર ન રાખો (0 એ માન્ય સ્થાન છે પણ ખોટા જેવું ગણાય છે).

3. slice સામે substring: બંને કાઢે છે, પણ slice(-3) છેડેથી ગણે છે જ્યારે substring ઋણ આંકડાને 0 ગણે છે. 'છેલ્લા N અક્ષર' જોઈએ ત્યારે slice તરફ હાથ લંબાવો.

Theory

Validation નું આ જ હૃદય છે

Unit 5 માં તમે email ને એમાં @ છે અને એની પછી . છે એ તપાસીને validate કરશો, અને mobile નંબરને જગ્યાઓ કાઢીને લંબાઈ તપાસીને, અને એ બધું અહીંની પદ્ધતિઓથી. trim, indexOf, split, અને slice એ form ના validation નાં રોજિંદાં ઓજાર છે. હવે પછીનો પાઠ આ પ્રતિભાવોને events થી વાપરનારની ક્રિયાઓ સાથે જોડે છે.

Summary

Key takeaways

  • Strings બદલાતી નથી: દરેક પદ્ધતિ નવી string પાછી આપે છે, એટલે એને પકડો (name = name.trim()).
  • concat કે + થી જોડો; split(sep) એ string ને array માં તોડે છે.
  • indexOf / lastIndexOf સ્થાન કે ન મળે તો -1 આપે છે: !== -1 થી કસો, ક્યારેય boolean તરીકે નહીં.
  • slice, substring, charAt ભાગ કાઢે છે; 'છેડેથી' માટે slice ઋણ આંકડા સ્વીકારે છે.
  • trim() કિનારીની જગ્યાઓ કાઢે છે; replace() પહેલો મેળ બદલે છે (બધા માટે replaceAll).
  • Memory hook: string ની પદ્ધતિઓ નકલ પાછી આપે છે, એટલે એને સંઘરો.

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Overview of JavaScript

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati