Theory
Site એ વસ્તુઓ યાદ રાખવી પડે છે
FestConnect એ બદલાતા આંકડા (લોકો નોંધણી કરે તેમ બાકી બેઠકો ઘટે), ક્યારેય ન બદલાતા આંકડા (પ્રવેશની ફી), અને લખાણ (student નું નામ) નોંધવાં પડે છે. આ રાખવા JavaScript variables વાપરે છે: નામ આપેલી પેટીઓ જેમાં તમે મૂલ્યો મૂકો છો અને પછી પાછાં વાંચો છો.
બે પ્રશ્નો નક્કી કરે છે કે તમે એને કેવી રીતે લખો: આ મૂલ્ય ક્યારેય બદલાય છે? (let કે const પસંદ કરો), અને એ કયા પ્રકારનું મૂલ્ય છે (એનો પ્રકાર)?
Theory
લેબલવાળી પેટીઓ, કેટલીક સીલ કરેલી
ભંડારના ઓરડામાં લેબલવાળી પેટીઓ વિચારો. let વાળી પેટી તમે ખાલી કરીને ફરી ભરી શકો છો (બાકી બેઠકો: 30, પછી 29, પછી 28). const વાળી પેટી એક વાર ભર્યા પછી સીલ થઈ જાય છે (આ ફેરામાં ફી કાયમ 200). બંનેને લેબલ (નામ) છે જેનાથી તમે એમને શોધો છો. અને અંદર જે છે, આંકડો, થોડું લખાણ, હા/ના, એને એક પ્રકાર છે જે નક્કી કરે છે કે તમે એની સાથે શું કરી શકો.
Theory
Declare કરવું, અને પ્રકારો
- `let`: એવું variable જેને તમે ફરી સોંપી શકો.
let seatsLeft = 30; - `const`: આ ફેરા માટે નિશ્ચિત મૂલ્ય; declare કરતી વખતે જ ગોઠવવું પડે.
const FEE = 200; - `var`: જૂનું સ્વરૂપ; નવા code માં એને ટાળો (ઢીલો વ્યાપ).
મૂલ્યને એક પ્રકાર હોય છે:
- number (
200,3.5, અલગ int/float નહીં), string ("Aditi"), boolean (true/false), undefined (declare થયેલું, હજી કોઈ મૂલ્ય નહીં), null (જાણી જોઈને ખાલી), અને object (arrays અને objects).typeof xતમને કહે છે કે કયો.
Practical
FestConnect ની અવસ્થા
let seatsLeft = 30; // number, will change
const FEE = 200; // number, fixed this run
let studentName = "Aditi"; // string
let isPaid = false; // boolean
let coupon; // undefined (declared, no value)
seatsLeft = seatsLeft - 1; // ok: let can be reassigned -> 29
// FEE = 250; // ERROR: const cannot be reassigned
console.log(typeof seatsLeft); // "number"
console.log(typeof studentName);// "string"
console.log(typeof isPaid); // "boolean"
console.log(typeof coupon); // "undefined"This example runs in Gri-Learn on the web, where you can edit it and see the output.
Think first
let કે const?
FestConnect ના દરેક મૂલ્ય માટે let કે const પસંદ કરો: (a) fest ની તારીખ '12 March', (b) નોંધાયેલા students ની ચાલુ ગણતરી, (c) મહત્તમ બેઠકો 500. Tap કરતાં પહેલાં નક્કી કરો.
Show the answer
(a) fest ની તારીખ: const, પાનાના જીવન દરમિયાન એ બદલાતી નથી. (b) નોંધાયેલા students ની ચાલુ ગણતરી: let, લોકો નોંધણી કરે તેમ એ વધે છે. (c) મહત્તમ બેઠકો 500: const, નિશ્ચિત મર્યાદા. અંગૂઠાનો નિયમ: મૂળભૂત રીતે const તરફ હાથ લંબાવો, અને let પર ત્યારે જ જાઓ જ્યારે તમને ખબર હોય કે મૂલ્ય ફરી સોંપાશે. ઓછા આકસ્મિક ફેરફાર, ઓછા bugs.
Quiz
Console માં, `typeof null` આશ્ચર્યજનક રીતે શું પાછું આપે છે?
- "object" (JavaScript ની લાંબા સમયથી ચાલી આવતી વિચિત્રતા)
- "null"
- "undefined"
- "boolean"
Show the answer
"object" (JavaScript ની લાંબા સમયથી ચાલી આવતી વિચિત્રતા)
JavaScript ના શરૂઆતના દિવસોથી એમાં ભળી ગયેલા bug ને કારણે, typeof null એ "object" string પાછી આપે છે, "null" નહીં (A). એ "undefined" પણ નથી (એ તો કોઈ મૂલ્ય ન સોંપાયેલા variable માટે છે, જુદી વસ્તુ) (C), અને boolean તો ચોક્કસ નહીં (D). પરીક્ષકોને આ ચાલાકી બહુ ગમે છે કારણ કે એ ખોટું લાગે છે પણ એ જ વ્યાખ્યાયિત વર્તન છે. યાદ રાખો: null એ 'જાણી જોઈને ખાલી' અર્થનું મૂલ્ય છે, છતાં typeof એને object તરીકે જણાવે છે.
Watch out
Variable ના ફાંદા
1. const નો અર્થ સામગ્રી થીજી ગઈ એવો નથી: તમે const ને ફરી સોંપી શકતા નથી, પણ જો એમાં object હોય તો તમે object ના ગુણધર્મો હજી બદલી શકો છો. const પેટી ને તાળું મારે છે, પાત્રની અંદર જે છે એને નહીં.
2. undefined સામે null: undefined = ક્યારેય મૂલ્ય અપાયું જ નથી; null = તમે એને જાણી જોઈને ખાલી ગોઠવ્યું છે. એ સરખાં નથી.
3. ટેવવશ var ફરી વાપરવું: let/const પસંદ કરો; var ટુકડાની બહાર નીકળી જાય છે અને ગૂંચવતા bugs સર્જે છે.
Theory
Operators શું કરે એ પ્રકાર નક્કી કરે છે
પ્રકાર દેખાય એથી વધુ મહત્ત્વનો છે. હવે પછીના પાઠમાં, "3" + 2 એ "32" આપે છે (string નું ચોંટવું) પણ 3 + 2 એ 5 આપે છે (સરવાળો), ફક્ત પ્રકારને કારણે. seatsLeft એ number છે અને studentName એ string છે એ જાણવાથી જ તમે ધારી શકો છો કે પછીના પાઠના operators શું કરશે.
Summary
Key takeaways
- Variables એ નામ આપેલી પેટીઓ છે: let (ફરી સોંપી શકાય), const (આ ફેરામાં નિશ્ચિત, શરૂ કરવું જ પડે), var (જૂનું, ટાળો).
- મૂળભૂત રીતે const પસંદ કરો; મૂલ્ય બદલાવાનું હોય ત્યારે જ let વાપરો.
- પ્રકારો: number, string, boolean, undefined, null, object; JavaScript મૂલ્ય પરથી પ્રકાર પસંદ કરે છે (dynamic typing).
- typeof x પ્રકારને string તરીકે જણાવે છે; typeof null એ "object" છે (જાણીતી વિચિત્રતા).
- undefined = હજી કોઈ મૂલ્ય નહીં; null = જાણી જોઈને ખાલી; const પેટીને તાળું મારે છે, object ની સામગ્રીને નહીં.
- Memory hook: લેબલવાળી પેટીઓ, કેટલીક સીલ કરેલી (const).