-
Notifications
You must be signed in to change notification settings - Fork 4
/
exercises.js
442 lines (273 loc) · 10.4 KB
/
exercises.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
import { fileURLToPath } from "url";
if (process.argv[1] === fileURLToPath(import.meta.url)) {
/*
To run the code you write for each exercise, change the `exercise_01()` code below to match the EXACT name
of the exercise, as it is written in the line `function exercise_xx`.
For Example:
If I want to run exercise_05 below, I would change the code below from "exercise_01()" to
"exercise_05()", save this file.
Then, when I run this file by running `node exercise.js`
in the VS Code terminal while inside this folder, your code for exercise_05 will run.
*/
// Modify the line of code BELOW to run a different exercise
exercise_01();
// Modify the line of code ABOVE to run a different exercise
}
function exercise_01() {
/*
Exercise 1
Data Types:
1. Create 4 variables to hold a value for each of these four data types:
- String
- Number
- Boolean
- Object
2. Then, create a variable and DON'T assign it any value, just declare it.
3. Then, using the `typeof` keyword, log the type of each variable (including the unassigned one) to the console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_02() {
/*
Exercise 2
Type Conversion:
1. Create a variable and assign it a Number value
2. Using the previous variable, convert it to a String and assign it to a new variable
3. Then, log this new variable to the console along with its type, using typeof
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_03() {
/*
Exercise 3
Boolean Conversion:
1. Create 2 variables:
* one that stores a Boolean conversion of the number 0
* one that stores a Boolean conversion of the number 1
2. Then, log both of these variables to the console to see what
Booleans these numbers are converted to
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_04() {
/*
Exercise 4
Handling NaN:
1. Create a variable that attempts to convert a non-numeric string to a number
2. Then, using the method isNan(), check if this variable is Not a Number (NaN)
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_05() {
/*
Exercise 5
Template Literals:
1. Create a variable that stores your age as a Number.
2. Create a template literal string that embeds this variable in the message:
"I am [age] years old."
2. Then, log this string to the console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_06() {
// DONT edit the code below
const name = "Alice";
const number = 5;
// DONT edit the code above
/*
Exercise 6
Concatenate Strings:
1. Using the `name` and `number` variables above and the `+` operator,
create a new string that says "Alice has 5 apples". Then log this string to the console.
2. Then, using the `name` and `number` variables above and a template literal, create a new
string that says "Alice has 5 apples". Then log this string to the console.
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_07() {
/*
Exercise 7
JSON Conversion:
1. Create a JavaScript object, convert it to a JSON string, and log the result to the console.
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_08() {
// DONT edit the code below
const jsonStringToParse = '{"name": "Charlie", "age": 35}';
// DONT edit the code above
/*
Exercise 8
JSON Parsing:
1. Using the JSON string stored in `jsonStringToParse`, parse this string into an object
and then print one of its properties.
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_09() {
/*
Exercise 9
Math Object:
1. Create a decimal number variable that has at least 5 numbers after the "."
2. Then, use Math.round(), Math.ceil(), and Math.floor() on that number, logging
the result to the console each time
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_10() {
/*
Exercise 10
Decimal Precision:
1. Create a decimal number variable that has at least 5 numbers after the "."
2. Then, use toFixed() on the variable and round it to 2 decimal places.
Log the result to the console.
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_11() {
/*
Exercise 11
Locale Number Formatting:
1. Create a variable to hold a large number with 2 decimal points at the end of it
2. Create a new Intl.NumberFormat object for the US locale
3. Then, use this new objects `format` function to format the variable from step 1.
Store the result in a new variable
4. Log the new variable from step 3 to the console.
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_12() {
/*
Exercise 12
Locale-Based Currency:
1. Create a variable named `salary` that holds a 5 digit integer
2. Create a new Intl.NumberFormat object for the US locale, and provide
an object as the second argument with these property/value pairs:
{style: "currency", currency: "USD"}
3. Use this formatter to format the variable from step 1.
Then log the result to the console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_13() {
/*
Exercise 13
Other Locale Currency:
1. Create a variable named `salary` that holds a 6 digit integer
2. Create a new Intl.NumberFormat object using "ja-JP" for the first argument,
and provide an object as the second argument with these property/value pairs:
{style: "currency", currency: "JPY"}
3. Use this formatter to format the variable from step 1.
Then log the result to the console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_14() {
/*
Exercise 14
Date String Conversion:
1. Create a new Date object and assign it to a variable
2. Then, call toDateString on the variable and print the result to the console
3. Then, call toTimeString on the variable and print the result to the console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_15() {
/*
Exercise 15
Locale Date Formatting
1. Create a new Date object and assign it to a variable
2. Call the toLocaleDateString method on it and convert it to an en-US format date.
Log it to the console.
3. Call the toLocaleDateString method on it again and convert it to an en-GB format date.
Log it to the console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_16() {
/*
Exercise 16
Error Handling:
1. Write code that tries to parse invalid JSON and uses a try-catch block to handle the error.
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_17() {
/*
Exercise 17
1. Convert the Boolean value 'true' to a string.
Log it to he console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_18() {
/*
Exercise 18
1. Create a variable that holds a 9-digit number with 2 decimal places.
2. Then, use Intl.NumberFormat to create a number formatter for the US, Russia, and Japan.
For each formatter, provide an object as the second argument with these property/value pairs:
{style: "currency", currency: "[proper currency string]"}
Hint: You probably don't know the string arguments to use to do this for Russia.
Go to Google.com and search "Intl.NumberFormat argument for Greek format"
Then also look up "Intl.NumberFormat option for greek currency"
You will forget things all the time in this job, even as an expert.
There's a lot of information to keep in your head.
That's why learning to put together good search prompts in Google and other
search engines is CRUCIAL in this job.
Don't worry, you'll get better at this over time as you pick up the terminology
and understand how programs are written/executed.
3. Then use each formatter to format the variable from step 1, and log it to the console
each time.
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}
function exercise_19() {
/*
Exercise 19
Date Arithmetic:
1. Create a variable to hold a new Date object for today's date.
2. Create a variable to hold a new Date object for a future date in 2025
3. Find the time difference between the future date and the current date
4. Convert this time difference to days
5. Log the day difference to the console
*/
// CODE IN THE OPEN LINES BELOW
const placeholder = "Delete this line and code in this space";
// CODE IN THE OPEN LINES ABOVE
}