title
Learn JavaScript - Full Course for Beginners

description
This complete 134-part JavaScript tutorial for beginners will teach you everything you need to know to get started with the JavaScript programming language. ✏️ Course created by @beau Click the ⚙️ to change to a dub track in Hindi (Dubbed via Melt Labs - https://www.withmelt.com/) ⭐️Curriculum⭐️ This is a stand-alone video but it follows the JavaScript curriculum at freecodecamp.org. Access the curriculum here: 🔗 Basic JavaScript: https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript 🔗 ES6 JavaScript: https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6 ⭐️Code⭐️ This course was created using scrimba.com. Access the course there along with the code: 🔗 Basic JavaScript: https://scrimba.com/playlist/pny4ghw 🔗 ES6 JavaScript: https://scrimba.com/playlist/p7v3gCd ⭐️Course Contents⭐️ 0:00:00 Introduction 0:01:24 Running JavaScript 0:04:23 Comment Your Code 0:05:56 Declare Variables 0:06:15 Storing Values with the Assignment Operator 0:11:31 Initializing Variables with the Assignment Operator 0:11:58 Uninitialized Variables 0:12:40 Case Sensitivity in Variables 0:14:05 Basic Math 0:15:30 Increment and Decrement 0:16:22 Decimal Numbers 0:16:48 Multiply Two Decimals 0:17:18 Divide Decimals 0:17:33 Finding a Remainder 0:18:22 Augmented Math Operations 0:21:19 Declare String Variables 0:22:01 Escaping Literal Quotes 0:23:44 Quoting Strings with Single Quotes 0:25:18 Escape Sequences 0:26:46 Plus Operator 0:27:49 Plus Equals Operator 0:29:01 Constructing Strings with Variables 0:30:14 Appending Variables to Strings 0:31:11 Length of a String 0:32:01 Bracket Notation 0:33:27 Understand String Immutability 0:34:23 Find the Nth Character 0:36:28 Word Blanks 0:40:44 Arrays 0:41:43 Nest Arrays 0:42:33 Access Array Data 0:43:34 Modify Array Data 0:44:48 Access Multi-Dimensional Arrays 0:46:30 push() 0:47:29 pop() 0:48:33 shift() 0:49:23 unshift() 0:50:36 Shopping List 0:51:41 Write Reusable with Functions 0:53:41 Arguments 0:55:43 Global Scope 0:59:31 Local Scope 1:00:46 Global vs Local Scope in Functions 1:02:40 Return a Value from a Function 1:03:55 Undefined Value returned 1:04:52 Assignment with a Returned Value 1:05:52 Stand in Line 1:08:41 Boolean Values 1:09:24 If Statements 1:11:51 Equality Operators 1:19:17 And / Or Operators 1:21:37 Else Statements 1:22:27 Else If Statements 1:23:30 Logical Order in If Else Statements 1:24:45 Chaining If Else Statements 1:27:45 Golf Code 1:32:15 Switch Statements 1:41:11 Returning Boolean Values from Functions 1:42:20 Return Early Pattern for Functions 1:43:38 Counting Cards 1:49:11 Build Objects 1:50:46 Dot Notation 1:51:33 Bracket Notation 1:52:47 Variables 1:53:34 Updating Object Properties 1:54:30 Add New Properties to Object 1:55:19 Delete Properties from Object 1:55:54 Objects for Lookups 1:57:43 Testing Objects for Properties 1:59:15 Manipulating Complex Objects 2:01:00 Nested Objects 2:01:53 Nested Arrays 2:03:06 Record Collection 2:10:15 While Loops 2:11:35 For Loops 2:13:56 Odd Numbers With a For Loop 2:15:28 Count Backwards With a For Loop 2:17:08 Iterate Through an Array with a For Loop 2:19:43 Nesting For Loops 2:22:45 Do...While Loops 2:24:12 Profile Lookup 2:28:18 Random Fractions and Whole Numbers 2:31:46 parseInt Function 2:33:29 Ternary Operator 2:34:57 Multiple Ternary Operators 2:36:57 var vs let 2:41:32 const Keyword 2:43:40 Mutate an Array Declared with const 2:44:52 Prevent Object Mutation 2:47:17 Arrow Functions 2:53:04 Default Parameters 2:54:00 Rest Operator 2:55:31 Spread Operator 2:57:18 Destructuring Assignment 3:06:39 Template Literals 3:10:43 Simple Fields 3:12:24 Declarative Functions 3:12:56 class Syntax 3:15:11 getters and setters 3:20:25 import and export 🎥 Want something shorter? Here's a 63-second JavaScript course: https://www.youtube.com/watch?v=OXiyLaNo3NE

detail
{'title': 'Learn JavaScript - Full Course for Beginners', 'heatmap': [{'end': 744.343, 'start': 615.887, 'weight': 0.722}, {'end': 1860.639, 'start': 1736.537, 'weight': 0.819}, {'end': 3975.347, 'start': 3843.507, 'weight': 0.713}, {'end': 6210.881, 'start': 5951.042, 'weight': 0.926}, {'end': 6450.375, 'start': 6325.574, 'weight': 0.746}, {'end': 6948.536, 'start': 6821.313, 'weight': 0.882}, {'end': 10175.946, 'start': 10046.664, 'weight': 0.705}, {'end': 10546.025, 'start': 10415.632, 'weight': 0.925}, {'end': 12380.206, 'start': 12276.728, 'weight': 1}], 'summary': 'The javascript course for beginners covers fundamental concepts, including basic syntax, es6, string and arithmetic operations, arrays, functions, switch statements, objects, es6 features, and syntax, with practical project guidance and examples for comprehensive learning.', 'chapters': [{'end': 835.926, 'segs': [{'end': 61.982, 'src': 'embed', 'start': 24.128, 'weight': 0, 'content': [{'end': 28.95, 'text': 'This course actually goes along with the FreeCodeCamp.org JavaScript curriculum.', 'start': 24.128, 'duration': 4.822}, {'end': 36.814, 'text': 'So if you want some live coding challenges to go along with every part of this course, you can check the link in the description to that curriculum.', 'start': 29.551, 'duration': 7.263}, {'end': 39.876, 'text': 'But this is a completely stand-alone video.', 'start': 37.315, 'duration': 2.561}, {'end': 44.497, 'text': "So you don't need to go through freecodecamp.org, but it could be helpful.", 'start': 40.416, 'duration': 4.081}, {'end': 51.639, 'text': "Also, after this course, you're going to want to complete some or build some JavaScript projects.", 'start': 45.618, 'duration': 6.021}, {'end': 55.8, 'text': 'So I have a link in the description to some project tutorials.', 'start': 52.179, 'duration': 3.621}, {'end': 59.681, 'text': "But then after that, you're going to want to create some projects on your own.", 'start': 56.36, 'duration': 3.321}, {'end': 61.982, 'text': "That's how you really learn JavaScript.", 'start': 60.142, 'duration': 1.84}], 'summary': 'This javascript course is stand-alone, with live coding challenges. completion leads to building and creating javascript projects for effective learning.', 'duration': 37.854, 'max_score': 24.128, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg24128.jpg'}, {'end': 191.292, 'src': 'embed', 'start': 165.965, 'weight': 3, 'content': [{'end': 170.907, 'text': 'Like I mentioned, this course follows along with the JavaScript curriculum on freecodecamp.org.', 'start': 165.965, 'duration': 4.942}, {'end': 174.789, 'text': "And there's a built-in JavaScript editor right in here.", 'start': 171.568, 'duration': 3.221}, {'end': 177.431, 'text': 'And then it shows you the console down here.', 'start': 175.249, 'duration': 2.182}, {'end': 181.066, 'text': 'Another option would be to use CodePen.', 'start': 178.524, 'duration': 2.542}, {'end': 191.292, 'text': "If you go to CodePen.io, I'm going to go to create pen, and then there's going to be three windows, HTML, CSS, and JavaScript.", 'start': 181.486, 'duration': 9.806}], 'summary': 'Course follows javascript curriculum on freecodecamp.org with built-in javascript editor and console, plus codepen option.', 'duration': 25.327, 'max_score': 165.965, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg165965.jpg'}, {'end': 377.464, 'src': 'embed', 'start': 347.447, 'weight': 2, 'content': [{'end': 354.894, 'text': "I can put number equals nine and you can see it will be in color again because it's no longer commented out.", 'start': 347.447, 'duration': 7.447}, {'end': 362.538, 'text': "Now we're going to talk about data types and variables.", 'start': 359.597, 'duration': 2.941}, {'end': 367, 'text': 'In computer science, data is anything that is meaningful to the computer.', 'start': 363.098, 'duration': 3.902}, {'end': 372.522, 'text': 'And JavaScript provides seven different data types that you can use within JavaScript.', 'start': 367.64, 'duration': 4.882}, {'end': 377.464, 'text': 'Now, some of the more obvious and most common are strings and numbers.', 'start': 373.002, 'duration': 4.462}], 'summary': 'Javascript provides seven data types, including strings and numbers.', 'duration': 30.017, 'max_score': 347.447, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg347447.jpg'}, {'end': 520.693, 'src': 'embed', 'start': 485.825, 'weight': 4, 'content': [{'end': 496.37, 'text': "But there are other ways to there's a way called let so I can say let our name and then I can say equals free code camp.", 'start': 485.825, 'duration': 10.545}, {'end': 501.01, 'text': 'And then the other thing would be const.', 'start': 498.149, 'duration': 2.861}, {'end': 506.591, 'text': 'So I could do say do const pi equals and 3.14.', 'start': 501.39, 'duration': 5.201}, {'end': 510.492, 'text': 'Now the difference between var, let and const.', 'start': 506.591, 'duration': 3.901}, {'end': 515.212, 'text': 'var is going to be able to be used throughout your whole program.', 'start': 510.492, 'duration': 4.72}, {'end': 520.693, 'text': 'let will only be used within the scope of where you declare that.', 'start': 515.212, 'duration': 5.481}], 'summary': 'Explains the differences between var, let, and const in javascript.', 'duration': 34.868, 'max_score': 485.825, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg485825.jpg'}, {'end': 744.343, 'src': 'heatmap', 'start': 615.887, 'weight': 0.722, 'content': [{'end': 620.329, 'text': 'So I can say a equals seven.', 'start': 615.887, 'duration': 4.442}, {'end': 626.53, 'text': "So now I've just assigned seven to a I didn't have to declare a because it was already declared.", 'start': 620.769, 'duration': 5.761}, {'end': 634.573, 'text': 'And I can also say that B equals a.', 'start': 627.331, 'duration': 7.242}, {'end': 640.915, 'text': "So I've now assigned the contents of a to be put the semicolon there.", 'start': 634.573, 'duration': 6.342}, {'end': 649.354, 'text': 'One thing I want to tell you about is console dot log console dot log allows you to see things in the console.', 'start': 642.07, 'duration': 7.284}, {'end': 657.758, 'text': "So I'm going to console dot log a and if I load this here, you can see down here in the console, it shows seven.", 'start': 649.754, 'duration': 8.004}, {'end': 665.463, 'text': "So right now we've assigned a to be seven or and so we when we console dot log a it shows seven down there.", 'start': 658.479, 'duration': 6.984}, {'end': 675.283, 'text': 'If we put another console dot log right here, This will allow us to show what a was up here and then down there.', 'start': 666.803, 'duration': 8.48}, {'end': 677.205, 'text': 'So console dot log.', 'start': 675.704, 'duration': 1.501}, {'end': 683.111, 'text': "Now if I run that, we can now see at first a was null, and then now it's seven.", 'start': 677.706, 'duration': 5.405}, {'end': 685.594, 'text': 'So here was this nullness seven down here.', 'start': 683.151, 'duration': 2.443}, {'end': 689.478, 'text': 'So you can check what variables are at various points in your program.', 'start': 685.954, 'duration': 3.524}, {'end': 702.509, 'text': "Now I'll show you another example of initializing a variable to an initial value at the same time it's declared.", 'start': 694.884, 'duration': 7.625}, {'end': 706.952, 'text': "So I'm going to say var a equals nine.", 'start': 702.529, 'duration': 4.423}, {'end': 716.458, 'text': 'So the var a is declaring it and the equals nine is initializing it with that the assignment operator, which is the equal sign.', 'start': 707.352, 'duration': 9.106}, {'end': 724.772, 'text': 'before we do anything to these variables, they are uninitialized.', 'start': 721.03, 'duration': 3.742}, {'end': 729.114, 'text': 'That means their value is undefined, we have not set them to anything.', 'start': 725.312, 'duration': 3.802}, {'end': 731.075, 'text': "But it's simple to fix that.", 'start': 729.735, 'duration': 1.34}, {'end': 736.218, 'text': "I'll just set this to five, I'll set B to 10.", 'start': 731.356, 'duration': 4.862}, {'end': 744.343, 'text': "And then we can set C to a string, it's going to be I am a string, we always have to put in quotation marks like that.", 'start': 736.218, 'duration': 8.125}], 'summary': "Assignment and initialization of variables, console.log for debugging, values shown: a=7, a=9, b=7, c='i am a string'.", 'duration': 128.456, 'max_score': 615.887, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg615887.jpg'}], 'start': 0.269, 'title': 'Javascript fundamentals', 'summary': "Introduces a beginner's javascript course covering basic syntax, es6 concepts, and practical project guidance, emphasizing hands-on learning. it also covers javascript data types, including strings, numbers, undefined, null, boolean, symbol, and objects, along with variable declaration using var, let, and const, and the assignment of values to variables, and the importance of using console.log to display variable values.", 'chapters': [{'end': 347.447, 'start': 0.269, 'title': "Beginner's javascript course", 'summary': "Introduces a beginner's javascript course covering basic syntax, es6 concepts, and practical project guidance, emphasizing the importance of hands-on learning and offering multiple options for writing and running javascript code.", 'duration': 347.178, 'highlights': ['The course covers basic JavaScript syntax and follows the FreeCodeCamp.org JavaScript curriculum, offering live coding challenges.', 'Emphasizes the importance of practical project-based learning for mastering JavaScript and offers project tutorials and guidance.', 'Provides guidance on different options for writing and running JavaScript, including code editors like Sublime Text and Visual Studio Code, as well as online platforms like CodePen and Scrimba.', 'Introduces the concept of comments in JavaScript, including inline and multi-line comments.']}, {'end': 835.926, 'start': 347.447, 'title': 'Javascript data types and variables', 'summary': 'Covers javascript data types, including seven different types such as strings, numbers, undefined, null, boolean, symbol, and objects, along with variable declaration using var, let, and const, and the assignment of values to variables, emphasizing the importance of using console.log to display variable values and the case sensitivity of variable and function names.', 'duration': 488.479, 'highlights': ['JavaScript provides seven different data types, including strings, numbers, undefined, null, boolean, symbol, and objects.', 'Explanation of variable declaration using var, let, and const, highlighting the differences between these methods and their appropriate use cases.', 'Emphasizing the importance of using console.log to display variable values and the significance of case sensitivity in variable and function names.']}], 'duration': 835.657, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg269.jpg', 'highlights': ['The course covers basic JavaScript syntax and offers live coding challenges.', 'Emphasizes practical project-based learning for mastering JavaScript.', 'JavaScript provides seven different data types, including strings, numbers, undefined, null, boolean, symbol, and objects.', 'Guidance on different options for writing and running JavaScript, including code editors and online platforms.', 'Explanation of variable declaration using var, let, and const, highlighting their differences and use cases.']}, {'end': 2416.459, 'segs': [{'end': 890.905, 'src': 'embed', 'start': 836.246, 'weight': 3, 'content': [{'end': 838.768, 'text': 'So we declare them up here, we assign them right here.', 'start': 836.246, 'duration': 2.522}, {'end': 844.712, 'text': "And then this is not going to give us any errors, it's going to behave exactly how we want it to behave.", 'start': 839.108, 'duration': 5.604}, {'end': 852.117, 'text': 'Adding two numbers in JavaScript is pretty straightforward.', 'start': 849.055, 'duration': 3.062}, {'end': 854.258, 'text': 'You just use the plus operator.', 'start': 852.437, 'duration': 1.821}, {'end': 857.701, 'text': 'So this says 10 plus zero, which equals 10.', 'start': 854.358, 'duration': 3.343}, {'end': 861.743, 'text': 'We can also do 10 plus 10, which is going to equal 20.', 'start': 857.701, 'duration': 4.042}, {'end': 870.369, 'text': "If we do a console dot log, and I can put some here, and then you'll be able to see that the answer is 20.", 'start': 861.743, 'duration': 8.626}, {'end': 878.129, 'text': 'Right in the console 10 plus 10 is 20.', 'start': 870.369, 'duration': 7.76}, {'end': 880.132, 'text': 'and subtraction is also what you would expect.', 'start': 878.129, 'duration': 2.003}, {'end': 887.621, 'text': 'We have the subtraction sign here that says 45 minus zero, we can also do 45 minus 33.', 'start': 880.172, 'duration': 7.449}, {'end': 889.183, 'text': 'And then that would equal 12.', 'start': 887.621, 'duration': 1.562}, {'end': 890.905, 'text': 'So the difference variable equals 12.', 'start': 889.183, 'duration': 1.722}], 'summary': 'Javascript arithmetic operations with examples, 10 + 10 = 20, 45 - 33 = 12', 'duration': 54.659, 'max_score': 836.246, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg836246.jpg'}, {'end': 961.627, 'src': 'embed', 'start': 933.55, 'weight': 1, 'content': [{'end': 936.571, 'text': 'to increment a number means to add one to it.', 'start': 933.55, 'duration': 3.021}, {'end': 940.212, 'text': "So here we're incrementing my var by one.", 'start': 936.991, 'duration': 3.221}, {'end': 943.413, 'text': 'So it starts at 8787 plus one is 88.', 'start': 940.352, 'duration': 3.061}, {'end': 947.434, 'text': 'There is a quicker way to increment a number.', 'start': 943.413, 'duration': 4.021}, {'end': 961.627, 'text': 'Instead of doing this, we can just do my var plus plus I have our plus plus now we have incremented my var from 87 to 88.', 'start': 947.834, 'duration': 13.793}], 'summary': "Incremented var from 8787 to 88 using '++' operator.", 'duration': 28.077, 'max_score': 933.55, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg933550.jpg'}, {'end': 1086.629, 'src': 'embed', 'start': 988.228, 'weight': 0, 'content': [{'end': 992.25, 'text': 'These are sometimes referred to as floating point numbers or floats.', 'start': 988.228, 'duration': 4.022}, {'end': 995.212, 'text': 'You can see this one here, five point seven.', 'start': 992.67, 'duration': 2.542}, {'end': 996.333, 'text': 'It can be anything.', 'start': 995.592, 'duration': 0.741}, {'end': 1003.397, 'text': "I'm going to make one called my decimal and then I'm going to store as zero point zero zero nine.", 'start': 996.353, 'duration': 7.044}, {'end': 1007.459, 'text': 'Anything that has a decimal point in it is a decimal point number.', 'start': 1004.037, 'duration': 3.422}, {'end': 1016.759, 'text': 'multiplying decimal point or floating point numbers is the same as multiplying integers.', 'start': 1011.835, 'duration': 4.924}, {'end': 1023.565, 'text': 'So we have 2.0 times 0.0 by just change this to 2.5.', 'start': 1017.26, 'duration': 6.305}, {'end': 1026.347, 'text': 'Now, the answer to product is going to be five.', 'start': 1023.565, 'duration': 2.782}, {'end': 1029.089, 'text': 'And I can console dot log that.', 'start': 1026.367, 'duration': 2.722}, {'end': 1031.832, 'text': 'So you can see if I just put product.', 'start': 1029.108, 'duration': 2.724}, {'end': 1036.836, 'text': "And if we do the browser here, you'll see that the answer is five.", 'start': 1033.413, 'duration': 3.423}, {'end': 1043.311, 'text': 'can also divide decimal point numbers.', 'start': 1041.451, 'duration': 1.86}, {'end': 1047.335, 'text': "So in this case, I'm going to change this to 4.4.", 'start': 1043.772, 'duration': 3.563}, {'end': 1056.041, 'text': 'So now the answer to quotient is 2.2 quotient equals 2.2.', 'start': 1047.335, 'duration': 8.706}, {'end': 1062.985, 'text': 'The remainder operator looks like a percent sign, and it gives the remainder of the division of two numbers.', 'start': 1056.041, 'duration': 6.944}, {'end': 1072.904, 'text': 'So for, for instance, if I want to find out the remainder of 11, divided by three, I can do remainder equals 11.', 'start': 1063.566, 'duration': 9.338}, {'end': 1077.585, 'text': "And then I'm going to put the percent sign which is the remainder operator three.", 'start': 1072.904, 'duration': 4.681}, {'end': 1083.168, 'text': 'And 11 divided by three is 911 minus nine is two.', 'start': 1078.726, 'duration': 4.442}, {'end': 1086.629, 'text': 'So the remainder is going to be 211.', 'start': 1083.628, 'duration': 3.001}], 'summary': 'Introducing decimal and floating point numbers, with examples of multiplication, division, and remainder calculations.', 'duration': 98.401, 'max_score': 988.228, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg988228.jpg'}, {'end': 1208.61, 'src': 'embed', 'start': 1182.679, 'weight': 14, 'content': [{'end': 1188.882, 'text': 'But we can shorten that instead of a equals a minus six, we can do minus equals.', 'start': 1182.679, 'duration': 6.203}, {'end': 1193.524, 'text': 'this is just a shortcut that JavaScript has that means the same thing.', 'start': 1189.702, 'duration': 3.822}, {'end': 1198.846, 'text': "That means a equals a minus six, but it's just shortened.", 'start': 1194.244, 'duration': 4.602}, {'end': 1199.926, 'text': 'Same here.', 'start': 1199.426, 'duration': 0.5}, {'end': 1202.867, 'text': 'So we can do minus equals 15.', 'start': 1199.986, 'duration': 2.881}, {'end': 1208.61, 'text': 'C equals C minus one, we can do C minus equals one.', 'start': 1202.867, 'duration': 5.743}], 'summary': "Javascript has a shortcut 'minus equals' which means a equals a minus six, c equals c minus one.", 'duration': 25.931, 'max_score': 1182.679, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg1182679.jpg'}, {'end': 1640.415, 'src': 'embed', 'start': 1613.334, 'weight': 5, 'content': [{'end': 1618.737, 'text': 'you can see here that we have two strings I come first and I come second.', 'start': 1613.334, 'duration': 5.403}, {'end': 1622.399, 'text': "they've been added together or concatenated with this.", 'start': 1618.737, 'duration': 3.662}, {'end': 1633.807, 'text': "So the r str, our string is now one long string that says I come first, I come second, I'll give you another example here.", 'start': 1622.82, 'duration': 10.987}, {'end': 1640.415, 'text': 'So we can say my string equals this is the start.', 'start': 1634.267, 'duration': 6.148}], 'summary': 'Two strings concatenated to form a longer string.', 'duration': 27.081, 'max_score': 1613.334, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg1613334.jpg'}, {'end': 1698.336, 'src': 'embed', 'start': 1667.798, 'weight': 6, 'content': [{'end': 1676.343, 'text': 'And you can also concatenate strings using the plus equal operator.', 'start': 1667.798, 'duration': 8.545}, {'end': 1687.333, 'text': 'You can see here in this example, we have the R string equals I come first, and then we have the R string plus equals I come second.', 'start': 1676.883, 'duration': 10.45}, {'end': 1698.336, 'text': "So remember, just like in when you're using numbers, plus equals means that you take whatever is on the end here and add it to the variable.", 'start': 1687.913, 'duration': 10.423}], 'summary': "Concatenate strings using the += operator, example: r += 'i come second'.", 'duration': 30.538, 'max_score': 1667.798, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg1667798.jpg'}, {'end': 1860.639, 'src': 'heatmap', 'start': 1736.537, 'weight': 0.819, 'content': [{'end': 1738.679, 'text': 'This is the second sentence.', 'start': 1736.537, 'duration': 2.142}, {'end': 1747.45, 'text': 'Good you can concatenate strings together with variables.', 'start': 1739.16, 'duration': 8.29}, {'end': 1750.331, 'text': 'You can see here our name free code camp.', 'start': 1747.85, 'duration': 2.481}, {'end': 1756.974, 'text': 'Hello, our name is and then we add this variable to our name variable, which is free code camp.', 'start': 1750.751, 'duration': 6.223}, {'end': 1759.034, 'text': 'Hello, our name is free code camp.', 'start': 1757.454, 'duration': 1.58}, {'end': 1762.316, 'text': "How are you? Well, we're going to do the same thing down here.", 'start': 1759.094, 'duration': 3.222}, {'end': 1766.657, 'text': "So I'm going to do my name equals bow.", 'start': 1762.896, 'duration': 3.761}, {'end': 1779.488, 'text': "And then my string is going to equal name is, and then I'm going to add the variable name, which is my name.", 'start': 1768.178, 'duration': 11.31}, {'end': 1784.692, 'text': "And then I'll continue the string here, oops, that's supposed to be a plus here.", 'start': 1781.049, 'duration': 3.643}, {'end': 1797.72, 'text': 'And I am well, see that I put a space here and here, because you have to make sure you put appropriate spaces in.', 'start': 1787.974, 'duration': 9.746}, {'end': 1799.822, 'text': "And let's see what that looks like.", 'start': 1798.561, 'duration': 1.261}, {'end': 1806.065, 'text': "I'll do a console that log I'll just put my string here.", 'start': 1799.862, 'duration': 6.203}, {'end': 1813.051, 'text': 'If I show that my name is Bo and I am well, looks good.', 'start': 1806.085, 'duration': 6.966}, {'end': 1826.209, 'text': 'you can append variables to strings with this plus equals operator, you can see with this variable and adjective, which is set to the word awesome.', 'start': 1817.566, 'duration': 8.643}, {'end': 1834.812, 'text': 'And then we have another variable, free code camp is, and then we have the R string variable plus equal an adjective.', 'start': 1826.809, 'duration': 8.003}, {'end': 1840.454, 'text': 'So now our string is going to equal free code camp is awesome.', 'start': 1835.272, 'duration': 5.182}, {'end': 1842.675, 'text': 'So let me show you another example.', 'start': 1841.074, 'duration': 1.601}, {'end': 1850.872, 'text': "We're going to say some adjective equals worth while.", 'start': 1842.695, 'duration': 8.177}, {'end': 1854.454, 'text': "And now I'm going to use the plus equals.", 'start': 1852.173, 'duration': 2.281}, {'end': 1860.639, 'text': 'So my str plus equals, and then I can put some adjective.', 'start': 1854.514, 'duration': 6.125}], 'summary': 'Concatenate strings using variables, append with plus equals operator.', 'duration': 124.102, 'max_score': 1736.537, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg1736537.jpg'}, {'end': 1905.01, 'src': 'embed', 'start': 1879.356, 'weight': 9, 'content': [{'end': 1885.658, 'text': 'So we have the first name is set to add a, but we just use the dot length property to find the length.', 'start': 1879.356, 'duration': 6.302}, {'end': 1892.94, 'text': 'So first name, dot length remember, first name is added here, and then dot length will return an integer,', 'start': 1886.018, 'duration': 6.922}, {'end': 1895.821, 'text': 'a number that has the number of characters in the string.', 'start': 1892.94, 'duration': 2.881}, {'end': 1896.942, 'text': 'So that will be three.', 'start': 1896.081, 'duration': 0.861}, {'end': 1899.003, 'text': "So let's try this again.", 'start': 1897.722, 'duration': 1.281}, {'end': 1905.01, 'text': "Here's another example, last name length equals last name, we just have to type in dot length.", 'start': 1899.084, 'duration': 5.926}], 'summary': 'Using dot length property to find length of first and last names, resulting in 3 characters for first name and unknown for last name.', 'duration': 25.654, 'max_score': 1879.356, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg1879356.jpg'}, {'end': 2015.483, 'src': 'embed', 'start': 1981.503, 'weight': 15, 'content': [{'end': 1985.426, 'text': "again, I'm just going to do the bracket notation and put a zero here.", 'start': 1981.503, 'duration': 3.923}, {'end': 1990.31, 'text': 'If I wanted the second letter, the O, I will put a one here.', 'start': 1986.047, 'duration': 4.263}, {'end': 1994.753, 'text': 'So if I console dot log, we can see what it came up with.', 'start': 1990.89, 'duration': 3.863}, {'end': 1999.557, 'text': 'So console dot log, first letter of last name.', 'start': 1994.793, 'duration': 4.764}, {'end': 2004.821, 'text': 'And if we look in the console, L, because the first letter of the last name is L.', 'start': 1999.577, 'duration': 5.244}, {'end': 2015.483, 'text': 'strings are immutable, meaning they cannot be altered once created.', 'start': 2010.439, 'duration': 5.044}], 'summary': 'Using bracket notation to access letters in a string; strings are immutable.', 'duration': 33.98, 'max_score': 1981.503, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg1981503.jpg'}, {'end': 2098.523, 'src': 'embed', 'start': 2066.576, 'weight': 7, 'content': [{'end': 2070.898, 'text': 'you can use bracket notation to get any character position in a string.', 'start': 2066.576, 'duration': 4.322}, {'end': 2073.76, 'text': 'So earlier, we did the first position.', 'start': 2071.458, 'duration': 2.302}, {'end': 2078.081, 'text': "But here's how you get the second position mirror the zero index.", 'start': 2074.139, 'duration': 3.942}, {'end': 2082.103, 'text': 'So one is the second position, zero is the first position.', 'start': 2078.181, 'duration': 3.922}, {'end': 2086.585, 'text': 'we can also get the third letter of the last name using the brackets.', 'start': 2082.103, 'duration': 4.482}, {'end': 2090.527, 'text': "we'll just put two in the brackets to get the third letter of the last name.", 'start': 2086.585, 'duration': 3.942}, {'end': 2098.523, 'text': 'you can also use bracket notation to find the last letter in a string.', 'start': 2094.761, 'duration': 3.762}], 'summary': 'Using bracket notation to access specific character positions in a string, including examples of first, second, and third positions, and finding the last letter.', 'duration': 31.947, 'max_score': 2066.576, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2066576.jpg'}, {'end': 2147.152, 'src': 'embed', 'start': 2118.536, 'weight': 11, 'content': [{'end': 2122.938, 'text': "The reason why we're doing a minus one is because remember, we count starting at zero.", 'start': 2118.536, 'duration': 4.402}, {'end': 2127.881, 'text': 'So the length minus one is going to be the last index of the name.', 'start': 2123.379, 'duration': 4.502}, {'end': 2130.042, 'text': 'So we can do that same thing here.', 'start': 2128.382, 'duration': 1.66}, {'end': 2141.489, 'text': 'To get the last letter of the last name, I can just do last name dot length minus one.', 'start': 2130.062, 'duration': 11.427}, {'end': 2147.152, 'text': "And that's going to get the last letter of the last name, which is the E right here.", 'start': 2142.749, 'duration': 4.403}], 'summary': 'Demonstrating the method to get the last letter of a name using length minus one.', 'duration': 28.616, 'max_score': 2118.536, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2118536.jpg'}, {'end': 2225.608, 'src': 'embed', 'start': 2198.992, 'weight': 12, 'content': [{'end': 2205.677, 'text': 'you are provided sentences with some missing words, like nouns, verbs, adjectives and adverbs,', 'start': 2198.992, 'duration': 6.685}, {'end': 2213.262, 'text': 'and then you fill in the missing pieces with words of your choice to make a sentence that could be funny and hopefully makes a little bit of sense.', 'start': 2205.677, 'duration': 7.585}, {'end': 2215.823, 'text': 'So let me show you how you do this.', 'start': 2214.022, 'duration': 1.801}, {'end': 2219.285, 'text': 'This also uses a function.', 'start': 2216.924, 'duration': 2.361}, {'end': 2222.407, 'text': "Now we haven't talked about functions yet.", 'start': 2219.305, 'duration': 3.102}, {'end': 2225.608, 'text': "I'm going to explain those more later.", 'start': 2222.927, 'duration': 2.681}], 'summary': 'Fill in missing words to create humorous, sensible sentences using provided sentences and a function.', 'duration': 26.616, 'max_score': 2198.992, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2198992.jpg'}], 'start': 836.246, 'title': 'Javascript string and arithmetic operations', 'summary': 'Covers basic arithmetic operations in javascript, such as addition, subtraction, multiplication, and division, along with string manipulation, accessing specific characters using bracket notation, and creating a word game using functions.', 'chapters': [{'end': 1056.041, 'start': 836.246, 'title': 'Javascript arithmetic operations', 'summary': 'Covers basic arithmetic operations in javascript, including addition, subtraction, multiplication, division, incrementing, decrementing, and working with decimal numbers, with examples demonstrating the results of each operation.', 'duration': 219.795, 'highlights': ['Multiplying decimal point or floating point numbers is the same as multiplying integers, for example, 2.5 times 2 gives a product of 5.', "Incrementing a number in JavaScript can be done using the '++' operator, for instance, incrementing a value from 87 to 88.", 'Dividing decimal point numbers in JavaScript results in a quotient, for instance, 4.4 divided by 2 gives a quotient of 2.2.', 'Adding two numbers in JavaScript is demonstrated using the plus operator, with an example of 10 plus 10 resulting in 20.', 'Subtraction in JavaScript is shown using the subtraction sign, with an example of 45 minus 33 resulting in a difference of 12.']}, {'end': 1813.051, 'start': 1056.041, 'title': 'Javascript operators, strings, and concatenation', 'summary': 'Covers the remainder operator, shortcuts for addition, subtraction, multiplication, and division, creation and manipulation of strings, including the use of escape characters, single quotes, and backticks, and concatenation of strings with the plus and plus equals operators.', 'duration': 757.01, 'highlights': ['Remainder operator for division', 'Shortcuts for addition, subtraction, multiplication, and division', 'Creation and manipulation of strings', 'Concatenation of strings with plus and plus equals operators']}, {'end': 2061.788, 'start': 1817.566, 'title': 'Javascript string manipulation', 'summary': 'Covers string manipulation in javascript, including appending variables to strings, finding the length of a string, using bracket notation to access specific characters, and understanding the immutability of strings.', 'duration': 244.222, 'highlights': ['Strings are immutable, meaning they cannot be altered once created.', 'Using bracket notation to access specific characters within a string.', 'Appending variables to strings using the plus equals operator.', 'Finding the length of a string using the length property.']}, {'end': 2416.459, 'start': 2066.576, 'title': 'Bracket notation & string manipulation', 'summary': 'Covers using bracket notation to access specific characters in a string, determining the last character by subtracting one from the length, and creating a word game using a function to fill in missing words in a sentence.', 'duration': 349.883, 'highlights': ['Using bracket notation to access specific characters in a string', 'Determining the last character by subtracting one from the length', 'Creating a word game using a function to fill in missing words in a sentence']}], 'duration': 1580.213, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg836246.jpg', 'highlights': ['Multiplying decimal point or floating point numbers is the same as multiplying integers, e.g., 2.5 times 2 gives a product of 5.', "Incrementing a number in JavaScript can be done using the '++' operator, e.g., incrementing a value from 87 to 88.", 'Dividing decimal point numbers in JavaScript results in a quotient, e.g., 4.4 divided by 2 gives a quotient of 2.2.', 'Adding two numbers in JavaScript is demonstrated using the plus operator, e.g., 10 plus 10 resulting in 20.', 'Subtraction in JavaScript is shown using the subtraction sign, e.g., 45 minus 33 resulting in a difference of 12.', 'Creation and manipulation of strings', 'Concatenation of strings with plus and plus equals operators', 'Using bracket notation to access specific characters within a string', 'Appending variables to strings using the plus equals operator', 'Finding the length of a string using the length property', 'Using bracket notation to access specific characters in a string', 'Determining the last character by subtracting one from the length', 'Creating a word game using a function to fill in missing words in a sentence', 'Remainder operator for division', 'Shortcuts for addition, subtraction, multiplication, and division', 'Strings are immutable, meaning they cannot be altered once created.']}, {'end': 3034.867, 'segs': [{'end': 2563.802, 'src': 'embed', 'start': 2506.699, 'weight': 0, 'content': [{'end': 2514.162, 'text': "When one of the elements in an array is another array, that's called a nested array or a multi dimensional array.", 'start': 2506.699, 'duration': 7.463}, {'end': 2516.583, 'text': "You can see here's the beginning of the array.", 'start': 2514.622, 'duration': 1.961}, {'end': 2517.903, 'text': "And here's the end of the array.", 'start': 2516.623, 'duration': 1.28}, {'end': 2523.605, 'text': 'But the first element in this array is another array with two elements of its own.', 'start': 2518.203, 'duration': 5.402}, {'end': 2526.026, 'text': 'Same with here, the second element is an array.', 'start': 2523.986, 'duration': 2.04}, {'end': 2529.428, 'text': 'So this is two arrays within another array.', 'start': 2526.407, 'duration': 3.021}, {'end': 2531.389, 'text': 'So we can do that here.', 'start': 2530.268, 'duration': 1.121}, {'end': 2532.51, 'text': "Here's another example.", 'start': 2531.469, 'duration': 1.041}, {'end': 2540.355, 'text': "So let's our first element in the array will be an array with a string and a number.", 'start': 2532.97, 'duration': 7.385}, {'end': 2551.322, 'text': "And then I'll put a comma to put the second element of the array, which will be another array with a string and a number.", 'start': 2541.115, 'duration': 10.207}, {'end': 2563.802, 'text': 'earlier, we learned how to use bracket notation to find a specific index and a string, you can do the same thing with arrays.', 'start': 2556.778, 'duration': 7.024}], 'summary': 'Transcript explains nested arrays and accessing elements using bracket notation.', 'duration': 57.103, 'max_score': 2506.699, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2506699.jpg'}, {'end': 2744.035, 'src': 'embed', 'start': 2717.319, 'weight': 2, 'content': [{'end': 2725.946, 'text': "So to access an array of arrays or an element within an array that's within an array, you use a double bracket notation.", 'start': 2717.319, 'duration': 8.627}, {'end': 2735.293, 'text': "So if you see this example here, my array, the first bracket is zero, that's going to get the first element in the array, which would be right here.", 'start': 2726.326, 'duration': 8.967}, {'end': 2738.413, 'text': 'And and then that element is an array.', 'start': 2735.313, 'duration': 3.1}, {'end': 2744.035, 'text': 'So the second bracket would be the index of the array within the array.', 'start': 2738.854, 'duration': 5.181}], 'summary': 'Access array of arrays using double bracket notation.', 'duration': 26.716, 'max_score': 2717.319, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2717319.jpg'}, {'end': 2862.189, 'src': 'embed', 'start': 2804.156, 'weight': 5, 'content': [{'end': 2813.179, 'text': 'And then we take our array right here and use the push function to push into the next element in the array, another array here.', 'start': 2804.156, 'duration': 9.023}, {'end': 2820.501, 'text': "So now it's going to look like this, we can see at the end of the original array, we've pushed this other array at the end.", 'start': 2813.579, 'duration': 6.922}, {'end': 2822.502, 'text': "So let's try it again.", 'start': 2821.241, 'duration': 1.261}, {'end': 2824.562, 'text': 'Down here, we have my array.', 'start': 2822.562, 'duration': 2}, {'end': 2828.844, 'text': 'And you can see what we have each element in the array is another array.', 'start': 2824.582, 'duration': 4.262}, {'end': 2834.266, 'text': 'So I am going to do my array dot push.', 'start': 2829.564, 'duration': 4.702}, {'end': 2839.288, 'text': 'And then I can push something on the end here, which will be like above another array.', 'start': 2834.847, 'duration': 4.441}, {'end': 2843.77, 'text': 'So this is going to say dog three.', 'start': 2839.909, 'duration': 3.861}, {'end': 2847.772, 'text': "And now we've pushed this on to the array.", 'start': 2844.851, 'duration': 2.921}, {'end': 2856.563, 'text': 'we can remove an item from an array with the pop function here.', 'start': 2852.659, 'duration': 3.904}, {'end': 2862.189, 'text': "So see this pop here, and then we know it's a function because of the parentheses at the end of the word pop.", 'start': 2857.023, 'duration': 5.166}], 'summary': 'Demonstration of using push and pop functions to manipulate arrays.', 'duration': 58.033, 'max_score': 2804.156, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2804156.jpg'}, {'end': 2939.543, 'src': 'embed', 'start': 2916.334, 'weight': 7, 'content': [{'end': 2924.117, 'text': 'the shift function is very similar to the pop function, except it removes the first element of the array instead of the final element.', 'start': 2916.334, 'duration': 7.783}, {'end': 2927.478, 'text': 'So we see the shift function on the end of the array here.', 'start': 2924.617, 'duration': 2.861}, {'end': 2929.779, 'text': 'And the array is the same as before.', 'start': 2928.098, 'duration': 1.681}, {'end': 2934.341, 'text': 'But now the first element Stimson is being removed.', 'start': 2930.179, 'duration': 4.162}, {'end': 2939.543, 'text': 'After we shift off the first element, the array is going to equal j cat.', 'start': 2934.881, 'duration': 4.662}], 'summary': "The shift function removes the first element from the array, resulting in 'j cat'.", 'duration': 23.209, 'max_score': 2916.334, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2916334.jpg'}, {'end': 2995.177, 'src': 'embed', 'start': 2970.421, 'weight': 8, 'content': [{'end': 2977.106, 'text': 'While push adds an element to the end of the array, unshift adds an element to the beginning of the array.', 'start': 2970.421, 'duration': 6.685}, {'end': 2986.813, 'text': "So let's look through this example code, we have the array Stimson j cat, we're going to shift off the first element, remove the first element.", 'start': 2977.526, 'duration': 9.287}, {'end': 2988.254, 'text': 'So our array is j cat.', 'start': 2987.173, 'duration': 1.081}, {'end': 2995.177, 'text': "Now we're going to unshift or add an element at the beginning, which is the string happy.", 'start': 2989.875, 'duration': 5.302}], 'summary': "Using unshift adds 'happy' to the start of the array.", 'duration': 24.756, 'max_score': 2970.421, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2970421.jpg'}], 'start': 2421.178, 'title': 'Arrays and multi-dimensional arrays', 'summary': 'Discusses arrays and nested arrays, demonstrating creation, access, and modification using bracket notation and provides examples of multi-dimensional arrays and array manipulation operations with quantifiable data.', 'chapters': [{'end': 2691.826, 'start': 2421.178, 'title': 'Arrays and nested arrays', 'summary': 'Discusses arrays and nested arrays, demonstrating how to create, access, and modify arrays using bracket notation and showcasing examples of nested arrays and array modifications.', 'duration': 270.648, 'highlights': ['Arrays allow you to store several pieces of data in one place, demonstrated through examples of creating arrays with various data types and modifying array elements.', 'Demonstration of nested arrays, showcasing the creation of arrays within arrays and explaining the concept of multi-dimensional arrays.', 'Usage of bracket notation to access and modify array elements, illustrated through examples and practical demonstrations.', 'Explanation of modifying arrays using array indexes, with examples showcasing the process of modifying specific elements within an array.']}, {'end': 3034.867, 'start': 2691.826, 'title': 'Using bracket notation for multi-dimensional arrays', 'summary': 'Discusses using bracket notation to access elements in multi-dimensional arrays, including examples of accessing and manipulating elements, such as pushing, popping, shifting, and unshifting, with quantifiable data on array manipulation operations.', 'duration': 343.041, 'highlights': ['Accessing elements in multi-dimensional arrays using bracket notation and index counting', 'Manipulating arrays with the push function to append data', 'Removing elements from arrays using the pop function', 'Using the shift function to remove the first element of an array', 'Adding elements to the beginning of an array with the unshift function']}], 'duration': 613.689, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg2421178.jpg', 'highlights': ['Demonstration of nested arrays, showcasing the creation of arrays within arrays and explaining the concept of multi-dimensional arrays.', 'Arrays allow you to store several pieces of data in one place, demonstrated through examples of creating arrays with various data types and modifying array elements.', 'Usage of bracket notation to access and modify array elements, illustrated through examples and practical demonstrations.', 'Explanation of modifying arrays using array indexes, with examples showcasing the process of modifying specific elements within an array.', 'Accessing elements in multi-dimensional arrays using bracket notation and index counting', 'Manipulating arrays with the push function to append data', 'Removing elements from arrays using the pop function', 'Using the shift function to remove the first element of an array', 'Adding elements to the beginning of an array with the unshift function']}, {'end': 3975.347, 'segs': [{'end': 3082.992, 'src': 'embed', 'start': 3039.73, 'weight': 0, 'content': [{'end': 3042.332, 'text': 'Let me give you another example of nested arrays.', 'start': 3039.73, 'duration': 2.602}, {'end': 3044.474, 'text': 'This will be a shopping list.', 'start': 3043.073, 'duration': 1.401}, {'end': 3047.576, 'text': "So inside this array, we're going to have another array.", 'start': 3044.954, 'duration': 2.622}, {'end': 3049.138, 'text': "And we're going to have items.", 'start': 3048.177, 'duration': 0.961}, {'end': 3053.38, 'text': 'Serial How many boxes? Three boxes.', 'start': 3050.437, 'duration': 2.943}, {'end': 3057.643, 'text': 'We also need some milk.', 'start': 3054.42, 'duration': 3.223}, {'end': 3061.506, 'text': "Let's get two cartons of milk.", 'start': 3058.904, 'duration': 2.602}, {'end': 3065.529, 'text': "Let's get some bananas.", 'start': 3063.427, 'duration': 2.102}, {'end': 3072.094, 'text': 'Three bunches of three bananas.', 'start': 3070.253, 'duration': 1.841}, {'end': 3078.059, 'text': "We'll also get some juice.", 'start': 3073.795, 'duration': 4.264}, {'end': 3082.992, 'text': 'two containers of juice.', 'start': 3081.431, 'duration': 1.561}], 'summary': 'Nested shopping list includes 3 boxes, 2 cartons of milk, 3 bunches of bananas, and 2 containers of juice.', 'duration': 43.262, 'max_score': 3039.73, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3039730.jpg'}, {'end': 3265.135, 'src': 'embed', 'start': 3216.468, 'weight': 1, 'content': [{'end': 3219.911, 'text': 'Now you see Hey, world and high world in the console.', 'start': 3216.468, 'duration': 3.443}, {'end': 3232.482, 'text': 'parameters are variables that act as placeholders for the values that are to be input to a function when it is called.', 'start': 3224.755, 'duration': 7.727}, {'end': 3237.566, 'text': 'So we have defined a function right here called our function with args.', 'start': 3233.142, 'duration': 4.424}, {'end': 3242.991, 'text': 'And inside the parentheses, we see the letters A and B.', 'start': 3238.247, 'duration': 4.744}, {'end': 3249.517, 'text': 'Now these can be any name that we could call these anything, not just A and B, they could really be any words up here.', 'start': 3242.991, 'duration': 6.526}, {'end': 3260.953, 'text': "And that means that when this function is called, we're going to pass data into the function or input data into the function.", 'start': 3250.458, 'duration': 10.495}, {'end': 3265.135, 'text': "So you can see the example here where we're calling the function.", 'start': 3261.533, 'duration': 3.602}], 'summary': "Function 'our function with args' takes input parameters a and b, demonstrating function call.", 'duration': 48.667, 'max_score': 3216.468, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3216468.jpg'}, {'end': 3364.808, 'src': 'embed', 'start': 3334.379, 'weight': 2, 'content': [{'end': 3336.501, 'text': "And let's see what that looks like in the console.", 'start': 3334.379, 'duration': 2.122}, {'end': 3341.365, 'text': 'So first, it output five for this one, then output 10.', 'start': 3336.841, 'duration': 4.524}, {'end': 3341.985, 'text': 'For this one.', 'start': 3341.365, 'duration': 0.62}, {'end': 3350.052, 'text': 'Scope refers to the visibility of variables.', 'start': 3346.929, 'duration': 3.123}, {'end': 3355.192, 'text': 'Variables which are defined outside of a function block have global scope.', 'start': 3350.965, 'duration': 4.227}, {'end': 3360.06, 'text': 'Global scope means they can be seen everywhere in your JavaScript code.', 'start': 3355.733, 'duration': 4.327}, {'end': 3364.808, 'text': "For instance, I'm going to declare a variable right here called my global.", 'start': 3360.501, 'duration': 4.307}], 'summary': 'Javascript variables have global scope, visible everywhere. example: my global.', 'duration': 30.429, 'max_score': 3334.379, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3334379.jpg'}, {'end': 3669.298, 'src': 'embed', 'start': 3637.063, 'weight': 4, 'content': [{'end': 3641.868, 'text': 'So really, we just need to delete this where we try to access the variable outside the function.', 'start': 3637.063, 'duration': 4.805}, {'end': 3653.992, 'text': 'And now there is no error It is possible to have both local and global variables with the same name.', 'start': 3642.609, 'duration': 11.383}, {'end': 3660.314, 'text': 'When you do this, the local variable takes precedent over the global variable.', 'start': 3654.792, 'duration': 5.522}, {'end': 3662.275, 'text': 'Let me show you an example.', 'start': 3660.955, 'duration': 1.32}, {'end': 3669.298, 'text': "Here we have a function called my outfit that's going to return outerwear.", 'start': 3662.975, 'duration': 6.323}], 'summary': 'Local variables take precedence over global variables in functions.', 'duration': 32.235, 'max_score': 3637.063, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3637063.jpg'}, {'end': 3975.347, 'src': 'heatmap', 'start': 3843.507, 'weight': 0.713, 'content': [{'end': 3849.831, 'text': 'In this case, this function adds three to the sum variable, which is a global variable.', 'start': 3843.507, 'duration': 6.324}, {'end': 3854.334, 'text': "because it's defined before the function, it does not return anything.", 'start': 3849.831, 'duration': 4.503}, {'end': 3860.678, 'text': "So if you don't specify a return value, the return value is just undefined.", 'start': 3855.014, 'duration': 5.664}, {'end': 3863.38, 'text': "Now I'm going to create another function that is similar.", 'start': 3861.238, 'duration': 2.142}, {'end': 3866.342, 'text': 'This one is going to be called add five.', 'start': 3863.4, 'duration': 2.942}, {'end': 3876.362, 'text': "And this time, we'll just do some equals some plus five.", 'start': 3868.957, 'duration': 7.405}, {'end': 3881.325, 'text': 'Or we can shorten this to use the plus equals.', 'start': 3877.843, 'duration': 3.482}, {'end': 3887.188, 'text': "So now that's going to add five to some also, but it's not going to return anything.", 'start': 3882.466, 'duration': 4.722}, {'end': 3891.131, 'text': 'So if we log this out, it would be undefined.', 'start': 3887.749, 'duration': 3.382}, {'end': 3899.415, 'text': "it's simple to assign a returned value to a variable.", 'start': 3895.791, 'duration': 3.624}, {'end': 3909.004, 'text': "See right here, we have the function change, and you pass the number and it's going to return the result of this mathematical expression.", 'start': 3900.055, 'duration': 8.949}, {'end': 3920.402, 'text': 'So when we call the function change and pass in the 10, the value that is returned from this function is going to be stored in this variable here.', 'start': 3909.685, 'duration': 10.717}, {'end': 3921.864, 'text': 'we can do the same thing down here.', 'start': 3920.402, 'duration': 1.462}, {'end': 3931.515, 'text': "First, we initialize the variable processed and process arg, it's going to return the result of this mathematical expression.", 'start': 3922.325, 'duration': 9.19}, {'end': 3939.497, 'text': 'So I can set processed to equal what this function returns.', 'start': 3932.036, 'duration': 7.461}, {'end': 3945.74, 'text': "So I can say processed arg and I'll just pass in the number seven here.", 'start': 3939.537, 'duration': 6.203}, {'end': 3951.023, 'text': 'And now processed equals the result of this mathematical expression.', 'start': 3947.501, 'duration': 3.522}, {'end': 3961.263, 'text': 'In computer science, a queue is an abstract data structure where items are kept in order.', 'start': 3955.262, 'duration': 6.001}, {'end': 3966.985, 'text': 'New items can be added to the back of the queue and old items are taken off from the front of the queue.', 'start': 3962.064, 'duration': 4.921}, {'end': 3975.347, 'text': "We're going to simulate that right now some of the functionality of a queue using this next in line function.", 'start': 3967.445, 'duration': 7.902}], 'summary': 'Functions add 3 and 5 to sum, return undefined, and queue simulates functionality.', 'duration': 131.84, 'max_score': 3843.507, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3843507.jpg'}], 'start': 3039.73, 'title': 'Javascript fundamentals', 'summary': 'Covers nested arrays, functions, parameters, and scope in javascript. it includes a shopping list example with quantities, demonstrates function creation and invocation, and discusses global and local scope with variable visibility. examples show the impact of passing different values as arguments to functions.', 'chapters': [{'end': 3123.699, 'start': 3039.73, 'title': 'Nested arrays and functions in javascript', 'summary': 'Explains nested arrays in javascript by providing a shopping list example with quantities, and also discusses the setup of functions for creating reusable code.', 'duration': 83.969, 'highlights': ['The chapter demonstrates creating a shopping list using nested arrays, including quantities such as three boxes, two cartons of milk, three bunches of bananas, and two containers of juice.', "It also outlines the setup of functions in JavaScript, involving the 'function' keyword, function name, and parentheses for passing information."]}, {'end': 3333.519, 'start': 3124.399, 'title': 'Understanding functions and parameters', 'summary': 'Explains how to create and invoke functions in javascript, with examples demonstrating the use of parameters and their role in function execution. it also shows the impact of passing different values as arguments to these functions, resulting in different output.', 'duration': 209.12, 'highlights': ["Functions are illustrated with examples, showcasing how they can be called and invoked, such as 'reusable function' and 'function with args', allowing for practical understanding of their usage.", "The concept of parameters in functions is demonstrated through the use of placeholder variables, 'A' and 'B', and their role in receiving input values, as shown with the example of passing the values 10 and 5, leading to a specific output.", 'The impact of passing different values as arguments to functions is explained, exemplifying how altering the input values, such as 10 and 5, can result in different outputs, providing a clear understanding of the dynamic nature of functions.']}, {'end': 3975.347, 'start': 3334.379, 'title': 'Understanding javascript scope', 'summary': 'Explains the concept of scope in javascript, covering global and local scope, variable visibility, and function return statements. it also provides examples and simulations of queue functionality using javascript functions.', 'duration': 640.968, 'highlights': ['Variables with global scope can be accessed everywhere in JavaScript code, as demonstrated by the my global variable set outside of a function, which is accessible within a function and an if statement.', 'Variables declared within a function have local scope, as shown by the my var variable, which is only visible within the function where it is declared.', 'Local variables take precedence over global variables with the same name, illustrated by the outerwear variable declared both globally and locally within a function.', 'Functions can have return statements to output values, as demonstrated by the return statements in the functions that perform mathematical operations and the explanation of the impact of not specifying a return value.', 'The concept of simulating queue functionality using JavaScript functions is introduced, explaining the abstract data structure and demonstrating the next in line function.']}], 'duration': 935.617, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3039730.jpg', 'highlights': ['The chapter demonstrates creating a shopping list using nested arrays, including quantities such as three boxes, two cartons of milk, three bunches of bananas, and two containers of juice.', "Functions are illustrated with examples, showcasing how they can be called and invoked, such as 'reusable function' and 'function with args', allowing for practical understanding of their usage.", 'Variables with global scope can be accessed everywhere in JavaScript code, as demonstrated by the my global variable set outside of a function, which is accessible within a function and an if statement.', "The concept of parameters in functions is demonstrated through the use of placeholder variables, 'A' and 'B', and their role in receiving input values, as shown with the example of passing the values 10 and 5, leading to a specific output.", 'Local variables take precedence over global variables with the same name, illustrated by the outerwear variable declared both globally and locally within a function.']}, {'end': 5520.511, 'segs': [{'end': 4004.74, 'src': 'embed', 'start': 3976.107, 'weight': 3, 'content': [{'end': 3985.149, 'text': "So the purpose of this is to show that in this next in line function, you can add an item to the array that's passed in,", 'start': 3976.107, 'duration': 9.042}, {'end': 3988.99, 'text': "and then it's going to return the first item on the list.", 'start': 3985.149, 'duration': 3.841}, {'end': 3998.955, 'text': 'For instance, if we have this array right here, if we add an, add an item to this array, it should come after at the end.', 'start': 3989.59, 'duration': 9.365}, {'end': 4004.74, 'text': 'so it should come after five and then it should return the first item on the list.', 'start': 3998.955, 'duration': 5.785}], 'summary': 'Demonstrating adding an item to an array and retrieving the first item.', 'duration': 28.633, 'max_score': 3976.107, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3976107.jpg'}, {'end': 4055.92, 'src': 'embed', 'start': 4029.02, 'weight': 4, 'content': [{'end': 4034.504, 'text': "So to do this, we're just going to have to do two things that we've learned about already.", 'start': 4029.02, 'duration': 5.484}, {'end': 4039.308, 'text': 'So the first thing is to add the item onto the list.', 'start': 4035.085, 'duration': 4.223}, {'end': 4044.733, 'text': 'So we see right here, next in line passed in the test array and six.', 'start': 4039.488, 'duration': 5.245}, {'end': 4047.995, 'text': "So we're calling this function next online.", 'start': 4045.433, 'duration': 2.562}, {'end': 4053.018, 'text': "we're passing in this test in this test array here and the number six.", 'start': 4047.995, 'duration': 5.023}, {'end': 4055.92, 'text': 'we want the number six to be added to the end of the array.', 'start': 4053.018, 'duration': 2.902}], 'summary': 'Add number six to the end of the test array.', 'duration': 26.9, 'max_score': 4029.02, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg4029020.jpg'}, {'end': 4429.514, 'src': 'embed', 'start': 4401.846, 'weight': 1, 'content': [{'end': 4405.787, 'text': 'we learned about the equality operator, which is the double equal sign.', 'start': 4401.846, 'duration': 3.941}, {'end': 4410.669, 'text': "There's also the strict equality operator, the triple equal sign.", 'start': 4406.407, 'duration': 4.262}, {'end': 4416.55, 'text': "So here we're checking if three equals three with the strict equality operator.", 'start': 4411.029, 'duration': 5.521}, {'end': 4425.673, 'text': 'So the difference is that the equality operator, the double equal sign, attempts to convert both values being compared to a common type,', 'start': 4416.89, 'duration': 8.783}, {'end': 4429.514, 'text': 'while the strict equality operator does not do the type conversion.', 'start': 4425.673, 'duration': 3.841}], 'summary': 'Learning about equality and strict equality operators in javascript.', 'duration': 27.668, 'max_score': 4401.846, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg4401846.jpg'}, {'end': 4742.682, 'src': 'embed', 'start': 4713.864, 'weight': 0, 'content': [{'end': 4719.926, 'text': 'If you see the less than symbol looks kind of like the letter L, which is the first letter in less than.', 'start': 4713.864, 'duration': 6.062}, {'end': 4722.647, 'text': 'And then the more than symbol is just the opposite.', 'start': 4719.946, 'duration': 2.701}, {'end': 4731.356, 'text': 'And we also have the less than or equal to operator we can use in JavaScript.', 'start': 4726.874, 'duration': 4.482}, {'end': 4736.359, 'text': "So here we're going to check if it's less than or equal to 12.", 'start': 4731.676, 'duration': 4.683}, {'end': 4740.521, 'text': 'So we just put the less than operator 12.', 'start': 4736.359, 'duration': 4.162}, {'end': 4742.682, 'text': 'Oh, equal less than or equal.', 'start': 4740.521, 'duration': 2.161}], 'summary': 'Javascript operators include <, >, and <=. checking if a value is less than or equal to 12.', 'duration': 28.818, 'max_score': 4713.864, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg4713864.jpg'}, {'end': 5303.634, 'src': 'embed', 'start': 5277.512, 'weight': 2, 'content': [{'end': 5282.357, 'text': "So depending on how far above or below par your strokes are, there's a different nickname.", 'start': 5277.512, 'duration': 4.845}, {'end': 5286.235, 'text': 'so here are some of the nicknames hole in one, eagle, birdie,', 'start': 5283.172, 'duration': 3.063}, {'end': 5292.742, 'text': "par and we're going to write a function where you pass in the par and you also pass on the strokes.", 'start': 5286.235, 'duration': 6.507}, {'end': 5298.228, 'text': "you can see up here par and strokes and it's going to return the nickname.", 'start': 5292.742, 'duration': 5.486}, {'end': 5299.89, 'text': "so that's what we're going to write.", 'start': 5298.228, 'duration': 1.662}, {'end': 5303.634, 'text': 'you can see this table here shows what we have to do.', 'start': 5299.89, 'duration': 3.744}], 'summary': 'Function to determine golf nickname based on strokes and par.', 'duration': 26.122, 'max_score': 5277.512, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg5277512.jpg'}], 'start': 3976.107, 'title': 'Javascript programming concepts', 'summary': 'Delves into array manipulation, javascript functions, boolean data type, comparison and conditional operators, and writing a function for golf score nicknames. it provides examples and practical demonstrations for each concept, offering a comprehensive understanding of javascript programming.', 'chapters': [{'end': 4028.219, 'start': 3976.107, 'title': 'Array manipulation function', 'summary': 'Explains how to add an item to an array and return the first item on the list, using a specific example and demonstrating the use of json.stringify to convert the array into a printable string.', 'duration': 52.112, 'highlights': ['The function demonstrates adding an item to an array and returning the first item.', 'The example array is used to illustrate the process, with the initial and final states shown via console.log.', 'The use of JSON.stringify to convert the array into a printable string is explained.']}, {'end': 4303.501, 'start': 4029.02, 'title': 'Javascript functions and booleans', 'summary': 'Covers adding and removing items from an array using push and shift methods, explaining boolean data type, and demonstrating if statements with examples.', 'duration': 274.481, 'highlights': ['The push method is used to add an item to the end of an array, demonstrated by adding the number six to the test array.', 'The shift method is utilized to remove and return the first item from the array, illustrated by removing and returning the number one from the test array.', 'Booleans in JavaScript are explained as a data type with only two values, true or false, used as on-off switches without quotation marks.', 'The concept of if statements is detailed, with examples showcasing how they are used to execute code under certain conditions based on the evaluation of a variable.']}, {'end': 4616.357, 'start': 4304.022, 'title': 'Javascript comparison operators', 'summary': 'Explains the usage of comparison operators in javascript, including the equality operator, strict equality operator, inequality operator, and strict inequality operator, demonstrating their behavior and type conversion, with examples and outcomes.', 'duration': 312.335, 'highlights': ['The chapter explains the usage of comparison operators in JavaScript, including the equality operator, strict equality operator, inequality operator, and strict inequality operator, demonstrating their behavior and type conversion, with examples and outcomes.', 'The strict inequality operator checks if two values are not equal without converting types, for example, if the number 3 does not equal the string 3, which would be true.', 'The strict equality operator does not perform type conversion, evaluating the truth of three equals, equals, equals three and the difference from the equality operator, which attempts to convert both values being compared to a common type.', 'The equality operator, the double equal sign, attempts to convert both values being compared to a common type, while the strict equality operator, the triple equal sign, does not perform type conversion.']}, {'end': 5234.192, 'start': 4617.097, 'title': 'Javascript conditional operators', 'summary': 'Covers examples of using conditional operators including equal, greater than, less than, and logical operators like and, or, else if, and chaining if/else if statements in javascript with examples and explanations.', 'duration': 617.095, 'highlights': ['The chapter covers examples of using conditional operators including equal, greater than, less than, and logical operators like and, or, else if, and chaining if/else if statements in JavaScript.', 'The chapter demonstrates examples of checking if a value is over 100 and over 10 using the greater than operator.', 'The chapter explains the usage of greater than or equal to operator with examples like checking if a value is over 10 and over 20.', 'The chapter provides a trick for remembering the less than and more than symbols and introduces the less than or equal to operator in JavaScript.', 'The chapter illustrates using nested if statements and the logical and operator to check if two conditions are true at the same time in JavaScript.', 'The chapter explains the usage of the logical or operator as an easier way to check if a value is not between 10 and 20 in JavaScript.', 'The chapter demonstrates the usage of the else statement to handle the alternate block of code when the if statement is not true.', 'The chapter explains the usage of else if statements to address multiple conditions in JavaScript.', 'The chapter emphasizes the importance of the order of else if statements and provides an example to illustrate the significance.', 'The chapter showcases the chaining of if and else if statements to fulfill multiple conditions in JavaScript.']}, {'end': 5520.511, 'start': 5234.192, 'title': 'Golf score nickname function', 'summary': "Explains how to write a function that returns golf score nicknames based on strokes relative to par, using specific conditions and an array, and provides an example of calling the function with par=5 and strokes=4, resulting in 'birdie'.", 'duration': 286.319, 'highlights': ['The chapter explains how to write a function that returns golf score nicknames based on strokes relative to par.', "Provides an example of calling the function with par=5 and strokes=4, resulting in 'birdie'.", 'Detailed explanation of specific conditions and an array used in the function.']}], 'duration': 1544.404, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg3976107.jpg', 'highlights': ['The chapter covers examples of using conditional operators including equal, greater than, less than, and logical operators like and, or, else if, and chaining if/else if statements in JavaScript.', 'The chapter explains the usage of comparison operators in JavaScript, including the equality operator, strict equality operator, inequality operator, and strict inequality operator, demonstrating their behavior and type conversion, with examples and outcomes.', 'The chapter explains how to write a function that returns golf score nicknames based on strokes relative to par.', 'The function demonstrates adding an item to an array and returning the first item.', 'The push method is used to add an item to the end of an array, demonstrated by adding the number six to the test array.']}, {'end': 6550.21, 'segs': [{'end': 5551.587, 'src': 'embed', 'start': 5521.291, 'weight': 3, 'content': [{'end': 5530.295, 'text': "And if I type in two here, eagle, if I type in eight, it's probably going to tell us to go home.", 'start': 5521.291, 'duration': 9.004}, {'end': 5531.515, 'text': 'Go home.', 'start': 5530.875, 'duration': 0.64}, {'end': 5533.916, 'text': 'Yep We just completed this challenge.', 'start': 5531.535, 'duration': 2.381}, {'end': 5543.122, 'text': 'Instead of using chained else if statements, you can use a switch statement.', 'start': 5538.28, 'duration': 4.842}, {'end': 5549.586, 'text': 'A switch statement tests a value and can have many case statements which define various possible values.', 'start': 5543.703, 'duration': 5.883}, {'end': 5551.587, 'text': 'So let me show you how that works.', 'start': 5550.246, 'duration': 1.341}], 'summary': 'Demonstration of using switch statement instead of chained else if statements for testing values.', 'duration': 30.296, 'max_score': 5521.291, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg5521291.jpg'}, {'end': 5799.456, 'src': 'embed', 'start': 5774.854, 'weight': 4, 'content': [{'end': 5785.523, 'text': 'So in this example, we can see that we passed in here, we pass them a and it returned Apple, because that was one of the options.', 'start': 5774.854, 'duration': 10.669}, {'end': 5792.489, 'text': "But what if we pass in something else, if I pass in the number two here, it's going to return an empty string.", 'start': 5785.843, 'duration': 6.646}, {'end': 5795.212, 'text': "That's because the answer is set to an empty string.", 'start': 5792.81, 'duration': 2.402}, {'end': 5797.554, 'text': 'And we never override the answer here.', 'start': 5795.472, 'duration': 2.082}, {'end': 5799.456, 'text': 'So it just returns that empty string.', 'start': 5797.634, 'duration': 1.822}], 'summary': "Passing 'a' returns 'apple', passing '2' returns empty string.", 'duration': 24.602, 'max_score': 5774.854, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg5774854.jpg'}, {'end': 5860.167, 'src': 'embed', 'start': 5829.517, 'weight': 1, 'content': [{'end': 5834.001, 'text': 'So we can pass in five is going to return turn stuff.', 'start': 5829.517, 'duration': 4.484}, {'end': 5840.246, 'text': 'But if I go back to pass again, see one of the things we have a case for it will return cat.', 'start': 5834.541, 'duration': 5.705}, {'end': 5842.428, 'text': "And that's the switch statement.", 'start': 5841.147, 'duration': 1.281}, {'end': 5851.583, 'text': 'sometimes you want to switch statement where multiple inputs give the same output.', 'start': 5846.46, 'duration': 5.123}, {'end': 5856.005, 'text': "Well, that's easy enough by omitting the break statement.", 'start': 5852.203, 'duration': 3.802}, {'end': 5857.606, 'text': 'Let me show you how that works.', 'start': 5856.365, 'duration': 1.241}, {'end': 5860.167, 'text': "So let's get a switch statement here.", 'start': 5858.046, 'duration': 2.121}], 'summary': 'The transcript discusses using switch statements to handle multiple inputs and outputs.', 'duration': 30.65, 'max_score': 5829.517, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg5829517.jpg'}, {'end': 6210.881, 'src': 'heatmap', 'start': 5951.042, 'weight': 0.926, 'content': [{'end': 5954.063, 'text': 'But if we pass in five, we should get mid.', 'start': 5951.042, 'duration': 3.021}, {'end': 5958.725, 'text': "And if it's seven, eight or nine, we should get high.", 'start': 5954.563, 'duration': 4.162}, {'end': 5970.806, 'text': 'Sometimes a switch statement can be easier to write and easier to understand than a chain of if else statements.', 'start': 5963.522, 'duration': 7.284}, {'end': 5978.43, 'text': "So we're going to change this chain of else if statements to become a switch statement.", 'start': 5971.306, 'duration': 7.124}, {'end': 5981.312, 'text': "So let's do that right now.", 'start': 5979.111, 'duration': 2.201}, {'end': 5987.155, 'text': "So we're going to start with the switch keyword and we're going to be evaluating the value.", 'start': 5981.332, 'duration': 5.823}, {'end': 6000.724, 'text': "with open curly bracket, and we'll have to make sure to have an in curly bracket and so for case, Bob, we're going to set the answer to Marley.", 'start': 5987.655, 'duration': 13.069}, {'end': 6003.165, 'text': 'And then we need to have a break in here.', 'start': 6001.444, 'duration': 1.721}, {'end': 6006.447, 'text': 'For case 42.', 'start': 6004.866, 'duration': 1.581}, {'end': 6010.21, 'text': "We're gonna set the answer to the answer.", 'start': 6006.447, 'duration': 3.763}, {'end': 6027.043, 'text': "Or Case one, we'll set the answer to there is no number one.", 'start': 6010.23, 'duration': 16.813}, {'end': 6031.204, 'text': 'We need a break up here.', 'start': 6030.164, 'duration': 1.04}, {'end': 6044.627, 'text': 'For case 99, the answer is missed by this much.', 'start': 6036.725, 'duration': 7.902}, {'end': 6047.008, 'text': 'And then we need a break.', 'start': 6046.168, 'duration': 0.84}, {'end': 6054.183, 'text': 'Now we have for case seven.', 'start': 6049.602, 'duration': 4.581}, {'end': 6062.946, 'text': 'Well, seven, eight, nine, and break.', 'start': 6058.505, 'duration': 4.441}, {'end': 6070.929, 'text': 'And now we just changed that chain of else if statements into a switch statement.', 'start': 6063.867, 'duration': 7.062}, {'end': 6081.861, 'text': "Here's a little trick when you want a function to return a Boolean, a true or false value, you can see in this function.", 'start': 6074.895, 'duration': 6.966}, {'end': 6084.283, 'text': "we're checking if A is less than B.", 'start': 6081.861, 'duration': 2.422}, {'end': 6095.352, 'text': 'And if so, we return true, else we return false, you may remember from before that all comparison operators return a Boolean true or false value.', 'start': 6084.283, 'duration': 11.069}, {'end': 6106.277, 'text': 'So instead of using this if statement here, we can just do that we can actually delete all of this and just return the result of this return.', 'start': 6095.852, 'duration': 10.425}, {'end': 6111.22, 'text': "We're just returning the result of A is less than B.", 'start': 6106.297, 'duration': 4.923}, {'end': 6114.622, 'text': 'So this is going to be true or false.', 'start': 6111.22, 'duration': 3.402}, {'end': 6120.065, 'text': 'And we can just skip that whole if statement logic and just return this.', 'start': 6115.442, 'duration': 4.623}, {'end': 6131.086, 'text': 'So if we console dot log this out, console dot log, we should be able to see if 10 is less than 15, 10 is less than 15.', 'start': 6120.645, 'duration': 10.441}, {'end': 6131.626, 'text': "It's true.", 'start': 6131.086, 'duration': 0.54}, {'end': 6134.007, 'text': "But if we put a 20 here, then it's false.", 'start': 6132.547, 'duration': 1.46}, {'end': 6150.206, 'text': "we've already seen a few examples of this, but you can return early from a function with the return statement.", 'start': 6143.959, 'duration': 6.247}, {'end': 6155.751, 'text': 'So if you see this function, this function right here, we return at the very end of the function.', 'start': 6150.666, 'duration': 5.085}, {'end': 6160.056, 'text': 'And so it leaves the function and returns this value from the function.', 'start': 6155.811, 'duration': 4.245}, {'end': 6164.677, 'text': 'but you can leave the function anytime with a return statement.', 'start': 6160.676, 'duration': 4.001}, {'end': 6173.74, 'text': "So we're going to modify this function so that if A or B are less than zero, the function will immediately exit with a value of undefined.", 'start': 6165.097, 'duration': 8.643}, {'end': 6174.981, 'text': "So let's do that.", 'start': 6174.28, 'duration': 0.701}, {'end': 6177.281, 'text': "we're going to set an if statement.", 'start': 6174.981, 'duration': 2.3}, {'end': 6194.332, 'text': "if a is less than zero or it's two pipes, B is less than zero, then we're going to return on undefined.", 'start': 6177.281, 'duration': 17.051}, {'end': 6210.881, 'text': "So we can do a test here, console dot log eight, but what if this is a negative number, it's going to return undefined.", 'start': 6196.794, 'duration': 14.087}], 'summary': 'Converted chain of else if statements to a switch statement, and simplified functions by using return statements for boolean values.', 'duration': 259.839, 'max_score': 5951.042, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg5951042.jpg'}, {'end': 6150.206, 'src': 'embed', 'start': 6115.442, 'weight': 2, 'content': [{'end': 6120.065, 'text': 'And we can just skip that whole if statement logic and just return this.', 'start': 6115.442, 'duration': 4.623}, {'end': 6131.086, 'text': 'So if we console dot log this out, console dot log, we should be able to see if 10 is less than 15, 10 is less than 15.', 'start': 6120.645, 'duration': 10.441}, {'end': 6131.626, 'text': "It's true.", 'start': 6131.086, 'duration': 0.54}, {'end': 6134.007, 'text': "But if we put a 20 here, then it's false.", 'start': 6132.547, 'duration': 1.46}, {'end': 6150.206, 'text': "we've already seen a few examples of this, but you can return early from a function with the return statement.", 'start': 6143.959, 'duration': 6.247}], 'summary': 'Code skips if statement, returns true for 10<15, otherwise false.', 'duration': 34.764, 'max_score': 6115.442, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6115442.jpg'}, {'end': 6318.909, 'src': 'embed', 'start': 6267.616, 'weight': 0, 'content': [{'end': 6275.881, 'text': "And depending on what the card is, it's going to increase this global count variable, or it's going to decrease it, or it's going to stay the same.", 'start': 6267.616, 'duration': 8.265}, {'end': 6279.663, 'text': 'And then we are going to return two things.', 'start': 6276.761, 'duration': 2.902}, {'end': 6280.543, 'text': "we're not going to return.", 'start': 6279.663, 'duration': 0.88}, {'end': 6281.524, 'text': 'change me.', 'start': 6280.543, 'duration': 0.981}, {'end': 6288.268, 'text': 'we are going to return the current count value and whether the player should hold or bet.', 'start': 6281.524, 'duration': 6.744}, {'end': 6297.767, 'text': "So every time you call the CC function, it's going to change this count value and return the total count.", 'start': 6289.344, 'duration': 8.423}, {'end': 6300.508, 'text': "So let's see how this is going to work.", 'start': 6298.367, 'duration': 2.141}, {'end': 6304.249, 'text': 'We are going to use the switch statement, like I said.', 'start': 6301.188, 'duration': 3.061}, {'end': 6310.932, 'text': "And we're going to check the card value that was passed in.", 'start': 6306.87, 'duration': 4.062}, {'end': 6318.909, 'text': 'So if the case is 23456, we are going to increment the count variable.', 'start': 6312.645, 'duration': 6.264}], 'summary': 'The function modifies a global count variable based on card values and returns the count value and a suggestion for the player to hold or bet.', 'duration': 51.293, 'max_score': 6267.616, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6267616.jpg'}, {'end': 6450.375, 'src': 'heatmap', 'start': 6325.574, 'weight': 0.746, 'content': [{'end': 6330.658, 'text': "If the case is 23456, we'll just have to actually change these values.", 'start': 6325.574, 'duration': 5.084}, {'end': 6335.802, 'text': 'five, six.', 'start': 6333.9, 'duration': 1.902}, {'end': 6339.325, 'text': 'Now there are many ways to write any program.', 'start': 6336.042, 'duration': 3.283}, {'end': 6342.407, 'text': 'This could be done with if statements and else statements.', 'start': 6339.865, 'duration': 2.542}, {'end': 6346.631, 'text': "It could be even done with other other ways that we haven't even talked about yet.", 'start': 6342.948, 'duration': 3.683}, {'end': 6348.832, 'text': 'As long as the program works.', 'start': 6347.071, 'duration': 1.761}, {'end': 6351.575, 'text': "In this case, that's all that matters.", 'start': 6349.553, 'duration': 2.022}, {'end': 6355.338, 'text': "So if you find a different way to write this program, that's great.", 'start': 6351.955, 'duration': 3.383}, {'end': 6362.557, 'text': 'So if the case is 2345, or six, we are going to take the count value.', 'start': 6356.255, 'duration': 6.302}, {'end': 6369.66, 'text': "And if we just do plus plus, that increments it by one, and then we're going to break.", 'start': 6362.897, 'duration': 6.763}, {'end': 6372.801, 'text': 'Now, if the case is 789.', 'start': 6370.78, 'duration': 2.021}, {'end': 6374.522, 'text': "So let's pay some three of these do 789.", 'start': 6372.801, 'duration': 1.721}, {'end': 6375.662, 'text': "Actually, we're going to do nothing.", 'start': 6374.522, 'duration': 1.14}, {'end': 6386.386, 'text': 'the count is not going to change at all.', 'start': 6384.985, 'duration': 1.401}, {'end': 6388.927, 'text': "So we don't even need case seven or eight, nine.", 'start': 6386.786, 'duration': 2.141}, {'end': 6395.252, 'text': "So instead of doing 789, we just need to check in the case that something's actually going to happen.", 'start': 6389.648, 'duration': 5.604}, {'end': 6402.577, 'text': 'So we are going to decrement the count variable, if we have 10, jack, queen, king or ace.', 'start': 6395.792, 'duration': 6.785}, {'end': 6404.518, 'text': "So that's what we're going to change this to 10.", 'start': 6403.117, 'duration': 1.401}, {'end': 6410.643, 'text': 'Back Queen.', 'start': 6404.518, 'duration': 6.125}, {'end': 6415.232, 'text': 'Ping base.', 'start': 6413.545, 'duration': 1.687}, {'end': 6422.177, 'text': "In this case, we're going to decrement the count.", 'start': 6419.175, 'duration': 3.002}, {'end': 6424.759, 'text': 'So you can do count minus minus.', 'start': 6422.557, 'duration': 2.202}, {'end': 6427.36, 'text': "So that's the same as count equals count minus one.", 'start': 6424.779, 'duration': 2.581}, {'end': 6430.503, 'text': 'And then we will break.', 'start': 6428.541, 'duration': 1.962}, {'end': 6437.367, 'text': "Now, we've taken care of the count and updating the count.", 'start': 6432.924, 'duration': 4.443}, {'end': 6440.049, 'text': "Now we have to take care of what we're going to return.", 'start': 6437.768, 'duration': 2.281}, {'end': 6450.375, 'text': "we are going to return the count and we're also going to return whether we are going to hold or bet.", 'start': 6440.049, 'duration': 10.326}], 'summary': 'Using different programming methods, the program updates count and determines hold/bet.', 'duration': 124.801, 'max_score': 6325.574, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6325574.jpg'}], 'start': 5521.291, 'title': 'Using switch statements and return statements in javascript', 'summary': 'Covers the use of switch statements to efficiently handle multiple scenarios, along with optimizing return statements, with examples and quantifiable benefits. it also presents a blackjack card counting function utilizing switch statements to adjust betting strategy based on card count.', 'chapters': [{'end': 5752.725, 'start': 5521.291, 'title': 'Switch statement in javascript', 'summary': 'Explains the use of a switch statement in javascript to handle multiple case scenarios efficiently, with an example defining different responses for different input values and demonstrating its functionality through a test with quantifiable results.', 'duration': 231.434, 'highlights': ['The chapter explains the use of a switch statement in JavaScript to handle multiple case scenarios efficiently', 'An example defining different responses for different input values', 'Demonstrating its functionality through a test with quantifiable results']}, {'end': 6217.425, 'start': 5753.246, 'title': 'Switch statements and return statements', 'summary': 'Explains the usage of switch statements to handle multiple inputs and the optimization of return statements to simplify conditional checks, showcasing examples and benefits of these techniques.', 'duration': 464.179, 'highlights': ['Switch statement allows handling multiple inputs with the same output by omitting the break statement, simplifying code and improving readability.', 'Return statement can optimize conditional checks, replacing if statements with direct return of comparison results, thus simplifying the function logic.', 'Usage of return statement to exit a function early based on specified conditions, improving code efficiency and readability.']}, {'end': 6550.21, 'start': 6221.86, 'title': 'Blackjack card counting function', 'summary': 'Presents a blackjack card counting function that tracks card values to adjust the betting strategy, using a switch statement to update the count variable and determine whether to hold or bet based on the count value.', 'duration': 328.35, 'highlights': ['The function tracks card values to update a global count variable, incrementing for low cards and decrementing for high cards, and returns the current count value and whether the player should hold or bet.', 'The switch statement is used to check the card value and increment the count variable for cases 2-6, while doing nothing for cases 7-9, and decrementing the count for 10, jack, queen, king, or ace.', "The function sets the hold bet variable based on the count value, with 'hold' as the default value and 'bet' if the count is more than zero."]}], 'duration': 1028.919, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg5521291.jpg', 'highlights': ['The function tracks card values to update a global count variable, incrementing for low cards and decrementing for high cards, and returns the current count value and whether the player should hold or bet.', 'Switch statement allows handling multiple inputs with the same output by omitting the break statement, simplifying code and improving readability.', 'Return statement can optimize conditional checks, replacing if statements with direct return of comparison results, thus simplifying the function logic.', 'The chapter explains the use of a switch statement in JavaScript to handle multiple case scenarios efficiently', 'An example defining different responses for different input values', 'The switch statement is used to check the card value and increment the count variable for cases 2-6, while doing nothing for cases 7-9, and decrementing the count for 10, jack, queen, king, or ace.']}, {'end': 7249.464, 'segs': [{'end': 6603.679, 'src': 'embed', 'start': 6579.284, 'weight': 1, 'content': [{'end': 6586.649, 'text': "So we have name, that's a property legs, the property, and then the values are the things after the colons here.", 'start': 6579.284, 'duration': 7.365}, {'end': 6594.833, 'text': "So the name is camper, the legs for tails, there's only one tail on this dog, and friends are everything.", 'start': 6586.969, 'duration': 7.864}, {'end': 6603.679, 'text': 'Now you can see that with the properties can be strings, they can be numbers, they can be arrays, they can be any data type in JavaScript.', 'start': 6595.274, 'duration': 8.405}], 'summary': "Properties in javascript can be strings, numbers, arrays, or any data type, illustrated with the example of a 'camper' having one tail and 'friends' being everything.", 'duration': 24.395, 'max_score': 6579.284, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6579284.jpg'}, {'end': 6723.323, 'src': 'embed', 'start': 6696.536, 'weight': 2, 'content': [{'end': 6704.159, 'text': 'Besides using dot notation, you can also use bracket notation to access a property in an object.', 'start': 6696.536, 'duration': 7.623}, {'end': 6711.341, 'text': 'You can use bracket notation anytime, but it is required if the name has a space in it.', 'start': 6704.839, 'duration': 6.502}, {'end': 6717.502, 'text': 'You can see in this object, we have three properties and each of them have a space.', 'start': 6711.821, 'duration': 5.681}, {'end': 6723.323, 'text': "So to get the value of these properties, we're going to have to use bracket notation.", 'start': 6718.062, 'duration': 5.261}], 'summary': 'Bracket notation is required for object properties with spaces.', 'duration': 26.787, 'max_score': 6696.536, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6696536.jpg'}, {'end': 6948.536, 'src': 'heatmap', 'start': 6821.313, 'weight': 0.882, 'content': [{'end': 6823.955, 'text': 'Here you can see an object called our dog.', 'start': 6821.313, 'duration': 2.642}, {'end': 6828.658, 'text': 'It has a name legs, tails, friends, and the name is camper.', 'start': 6824.435, 'duration': 4.223}, {'end': 6839.132, 'text': 'However, here, we use dot notation, our dog dot name, and use the assignment operator, the equal sign to set the name to happy camper.', 'start': 6829.585, 'duration': 9.547}, {'end': 6846.138, 'text': 'So if we did console dot log on our dog dot name, it would no longer be camper, it will be happy camper.', 'start': 6839.813, 'duration': 6.325}, {'end': 6852.643, 'text': 'Well, we have another dog here with a name of coder, but we want to change the name to happy coder.', 'start': 6846.538, 'duration': 6.105}, {'end': 6854.344, 'text': "So that's what I'll do right here.", 'start': 6853.163, 'duration': 1.181}, {'end': 6862.241, 'text': 'So my dog dot name, equals happy coder.', 'start': 6854.885, 'duration': 7.356}, {'end': 6869.172, 'text': 'So just like above, we use dot notation to set the object property to a new value.', 'start': 6863.763, 'duration': 5.409}, {'end': 6878.777, 'text': 'you can add new properties to an object using dot notation or bracket notation.', 'start': 6873.775, 'duration': 5.002}, {'end': 6880.718, 'text': "So here's an example right here.", 'start': 6879.277, 'duration': 1.441}, {'end': 6885.32, 'text': "We have this object, our dog, and there's four properties here.", 'start': 6880.778, 'duration': 4.542}, {'end': 6890.642, 'text': "But down here, we're adding a new property, our dog.bark equals bow wow.", 'start': 6885.7, 'duration': 4.942}, {'end': 6895.925, 'text': 'So it had four properties, but now it has five properties as the property bark as well.', 'start': 6891.143, 'duration': 4.782}, {'end': 6900.487, 'text': "Now down here, we'll add a property to the my dog object.", 'start': 6896.565, 'duration': 3.922}, {'end': 6908.818, 'text': "So we can do my dog, And then here I'm going to use bracket notation instead of dot notation, bark.", 'start': 6901.027, 'duration': 7.791}, {'end': 6913.261, 'text': "I'm going to set that to equal woof.", 'start': 6908.858, 'duration': 4.403}, {'end': 6917.303, 'text': "And because he's yelling, it will have an exclamation point.", 'start': 6914.481, 'duration': 2.822}, {'end': 6919.484, 'text': "And that's how you add properties to objects.", 'start': 6917.623, 'duration': 1.861}, {'end': 6928.805, 'text': "It's simple to delete a property from an object, our our dog object has all these properties.", 'start': 6923.522, 'duration': 5.283}, {'end': 6932.987, 'text': 'And with the delete keyword, delete our dog bark.', 'start': 6929.325, 'duration': 3.662}, {'end': 6939.331, 'text': "So now this property here, the bark has been deleted and is no longer in the object after we've deleted it.", 'start': 6933.427, 'duration': 5.904}, {'end': 6941.492, 'text': 'So we can do the same thing down here.', 'start': 6939.851, 'duration': 1.641}, {'end': 6948.536, 'text': 'And this time, we will delete the tails property, my dog tails.', 'start': 6942.232, 'duration': 6.304}], 'summary': 'Demonstrates manipulating object properties using dot and bracket notation, adding, and deleting properties.', 'duration': 127.223, 'max_score': 6821.313, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6821313.jpg'}, {'end': 6890.642, 'src': 'embed', 'start': 6854.885, 'weight': 4, 'content': [{'end': 6862.241, 'text': 'So my dog dot name, equals happy coder.', 'start': 6854.885, 'duration': 7.356}, {'end': 6869.172, 'text': 'So just like above, we use dot notation to set the object property to a new value.', 'start': 6863.763, 'duration': 5.409}, {'end': 6878.777, 'text': 'you can add new properties to an object using dot notation or bracket notation.', 'start': 6873.775, 'duration': 5.002}, {'end': 6880.718, 'text': "So here's an example right here.", 'start': 6879.277, 'duration': 1.441}, {'end': 6885.32, 'text': "We have this object, our dog, and there's four properties here.", 'start': 6880.778, 'duration': 4.542}, {'end': 6890.642, 'text': "But down here, we're adding a new property, our dog.bark equals bow wow.", 'start': 6885.7, 'duration': 4.942}], 'summary': 'Using dot notation to add new property to object, e.g., dog.bark = bow wow.', 'duration': 35.757, 'max_score': 6854.885, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6854885.jpg'}, {'end': 6948.536, 'src': 'embed', 'start': 6923.522, 'weight': 6, 'content': [{'end': 6928.805, 'text': "It's simple to delete a property from an object, our our dog object has all these properties.", 'start': 6923.522, 'duration': 5.283}, {'end': 6932.987, 'text': 'And with the delete keyword, delete our dog bark.', 'start': 6929.325, 'duration': 3.662}, {'end': 6939.331, 'text': "So now this property here, the bark has been deleted and is no longer in the object after we've deleted it.", 'start': 6933.427, 'duration': 5.904}, {'end': 6941.492, 'text': 'So we can do the same thing down here.', 'start': 6939.851, 'duration': 1.641}, {'end': 6948.536, 'text': 'And this time, we will delete the tails property, my dog tails.', 'start': 6942.232, 'duration': 6.304}], 'summary': "Deleting properties from the object using the delete keyword, such as removing the 'bark' and 'tails' properties from the 'dog' object.", 'duration': 25.014, 'max_score': 6923.522, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6923522.jpg'}, {'end': 7014.752, 'src': 'embed', 'start': 6975.891, 'weight': 7, 'content': [{'end': 6983.997, 'text': 'we can replace this switch statement with an object and use the object for lookups instead of the switch statement.', 'start': 6975.891, 'duration': 8.106}, {'end': 6985.859, 'text': "Let me show you how that's done.", 'start': 6984.618, 'duration': 1.241}, {'end': 6992.173, 'text': 'going to create var lookup, this is going to be an object here.', 'start': 6987.089, 'duration': 5.084}, {'end': 6996.817, 'text': 'And the object is going to have a bunch of key value pairs.', 'start': 6993.454, 'duration': 3.363}, {'end': 7003.122, 'text': "So we have alpha, and that's going to be atoms.", 'start': 6997.318, 'duration': 5.804}, {'end': 7008.407, 'text': 'And then we have Bravo.', 'start': 7006.005, 'duration': 2.402}, {'end': 7014.752, 'text': 'And the value for Bravo is going to be Boston.', 'start': 7010.608, 'duration': 4.144}], 'summary': 'Replacing switch statement with object for lookups, demonstrating with key-value pairs.', 'duration': 38.861, 'max_score': 6975.891, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6975891.jpg'}, {'end': 7187.105, 'src': 'embed', 'start': 7158.999, 'weight': 0, 'content': [{'end': 7162.582, 'text': 'A JavaScript object is a way to store flexible data.', 'start': 7158.999, 'duration': 3.583}, {'end': 7169.328, 'text': 'So you can store strings, numbers, and arrays, and even other objects.', 'start': 7163.383, 'duration': 5.945}, {'end': 7176.935, 'text': "So in this example, we have an array called my music, we can see it's an array because we have the open bracket and close bracket.", 'start': 7169.889, 'duration': 7.046}, {'end': 7180.198, 'text': 'But inside the array are objects.', 'start': 7177.415, 'duration': 2.783}, {'end': 7187.105, 'text': 'So this is one of the objects and inside the objects are all these key value pairs with the strings and the numbers and so on.', 'start': 7180.538, 'duration': 6.567}], 'summary': 'Javascript objects can store flexible data, including strings, numbers, and arrays, demonstrated through an example with key-value pairs.', 'duration': 28.106, 'max_score': 7158.999, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg7158999.jpg'}], 'start': 6554.765, 'title': 'Javascript objects', 'summary': 'Covers the basics of javascript objects, including defining and creating objects, using properties and values, different data types, dot notation, bracket notation, updating properties, adding new properties, deleting properties, lookups, checking property existence, and storing flexible data with objects and arrays.', 'chapters': [{'end': 6639.69, 'start': 6554.765, 'title': 'Introduction to objects in javascript', 'summary': 'Explains the concept of objects in javascript, demonstrating how to define and create objects, and the use of properties and values. it also showcases examples of different data types that properties can hold, such as strings, numbers, and arrays.', 'duration': 84.925, 'highlights': ['Objects in JavaScript are defined using curly braces and properties, where properties can hold various data types, including strings, numbers, and arrays.', 'The chapter demonstrates the creation of an object representing a dog named Quincy, with properties for name, legs, and friends, showcasing the usage of strings, numbers, and an empty array as values for the properties.', 'The concept of objects in JavaScript is explained, highlighting the usage of properties and values to define and create objects, providing a comprehensive understanding of the topic.']}, {'end': 7249.464, 'start': 6639.83, 'title': 'Javascript object basics', 'summary': 'Explains the basics of javascript objects, covering dot notation, bracket notation, updating properties, adding new properties, deleting properties, using objects for lookups, checking property existence, and storing flexible data with objects and arrays.', 'duration': 609.634, 'highlights': ['JavaScript objects can be accessed using dot notation or bracket notation, allowing for easy retrieval of property values.', 'Bracket notation can be used to look up object properties using variables, enabling dynamic property retrieval.', 'Objects can be updated by using dot notation to set new property values, facilitating easy modification of object properties.', 'New properties can be added to objects using dot notation or bracket notation, expanding the flexibility of object structures.', 'Properties can be deleted from objects using the delete keyword, allowing for efficient removal of unnecessary data.', 'Objects can be utilized for lookups, replacing switch statements with object-based value retrieval for enhanced efficiency.', 'The hasOwnProperty method can be applied to check if an object contains a specific property, providing a reliable means of property existence validation.', 'JavaScript objects enable the flexible storage of various data types, including strings, numbers, arrays, and other objects.']}], 'duration': 694.699, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg6554765.jpg', 'highlights': ['Objects in JavaScript are defined using curly braces and properties, holding various data types.', 'Demonstrates creating an object for a dog with properties for name, legs, and friends.', 'JavaScript objects can be accessed using dot notation or bracket notation.', 'Bracket notation allows dynamic property retrieval using variables.', 'Objects can be updated using dot notation to set new property values.', 'New properties can be added to objects using dot or bracket notation.', 'Properties can be deleted from objects using the delete keyword.', 'Objects can be utilized for lookups, replacing switch statements for efficiency.', 'JavaScript objects enable flexible storage of various data types.']}, {'end': 8897.377, 'segs': [{'end': 7338.14, 'src': 'embed', 'start': 7307.808, 'weight': 0, 'content': [{'end': 7309.389, 'text': "So let's see if we get the contents here.", 'start': 7307.808, 'duration': 1.581}, {'end': 7312.03, 'text': 'Yep, maps, it worked.', 'start': 7309.409, 'duration': 2.621}, {'end': 7322.751, 'text': 'array bracket notation can be changed to access nested arrays, you can see we have this array here.', 'start': 7316.747, 'duration': 6.004}, {'end': 7330.275, 'text': 'And inside this array are two objects, the first element of the array is this object, the second element of the array is this object.', 'start': 7323.351, 'duration': 6.924}, {'end': 7338.14, 'text': 'And then inside the object, we have a key value pair, the key is less than the value is another array here.', 'start': 7330.816, 'duration': 7.324}], 'summary': 'Demonstrating accessing nested arrays using array bracket notation and key-value pairs.', 'duration': 30.332, 'max_score': 7307.808, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg7307808.jpg'}, {'end': 7426.372, 'src': 'embed', 'start': 7398.292, 'weight': 3, 'content': [{'end': 7404.995, 'text': 'Each record has an ID, and then it also has different pieces of information about the record.', 'start': 7398.292, 'duration': 6.703}, {'end': 7407.677, 'text': "They don't all have the same information.", 'start': 7405.616, 'duration': 2.061}, {'end': 7411.979, 'text': 'But see, we have album artist tracks, album artist tracks.', 'start': 7407.797, 'duration': 4.182}, {'end': 7416.021, 'text': 'This just says artist tracks, and this just has album here.', 'start': 7412.659, 'duration': 3.362}, {'end': 7426.372, 'text': 'And we are supposed to create this update records function where we can pass in the ID, the property, and the value.', 'start': 7416.901, 'duration': 9.471}], 'summary': 'Creating update records function for managing record information.', 'duration': 28.08, 'max_score': 7398.292, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg7398292.jpg'}, {'end': 7912.627, 'src': 'embed', 'start': 7883.985, 'weight': 2, 'content': [{'end': 7891.49, 'text': 'The while loop worked it every time went through this five different times and push 0123 and four onto the loop.', 'start': 7883.985, 'duration': 7.505}, {'end': 7902.556, 'text': 'a for loop is the most common type of loop in JavaScript.', 'start': 7898.812, 'duration': 3.744}, {'end': 7905.479, 'text': 'So here is an example of a for loop.', 'start': 7902.896, 'duration': 2.583}, {'end': 7912.627, 'text': 'you start with the keyword for and then we have these parentheses with three different items in there, separated by semi colons.', 'start': 7905.479, 'duration': 7.148}], 'summary': 'The while loop ran 5 times, pushing 0123 and 4, while the for loop is a common type in javascript.', 'duration': 28.642, 'max_score': 7883.985, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg7883985.jpg'}, {'end': 8442.575, 'src': 'embed', 'start': 8417.521, 'weight': 4, 'content': [{'end': 8425.85, 'text': 'So we are going to use nested for loops within this multiply all function to multiply every number in these nested arrays here.', 'start': 8417.521, 'duration': 8.329}, {'end': 8428.793, 'text': "So let's get started, we're going to start with a for loop.", 'start': 8426.491, 'duration': 2.302}, {'end': 8436.148, 'text': "it's going to look just like the other four loops that we started I equals zero, we're going to initialize it as zero.", 'start': 8430.061, 'duration': 6.087}, {'end': 8442.575, 'text': "And then we're going to say, while I is less than r dot length.", 'start': 8436.969, 'duration': 5.606}], 'summary': 'Using nested for loops to multiply numbers in nested arrays.', 'duration': 25.054, 'max_score': 8417.521, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg8417521.jpg'}, {'end': 8862.501, 'src': 'embed', 'start': 8839.15, 'weight': 1, 'content': [{'end': 8847.574, 'text': 'And just so you know, there will be a way to do this without using this or operator, as long as the your code passes the requirements.', 'start': 8839.15, 'duration': 8.424}, {'end': 8849.015, 'text': "That's all that's important.", 'start': 8847.734, 'duration': 1.281}, {'end': 8850.635, 'text': "There's many ways of doing this.", 'start': 8849.315, 'duration': 1.32}, {'end': 8851.936, 'text': "But let's check it.", 'start': 8851.116, 'duration': 0.82}, {'end': 8855.337, 'text': "So right now we have our lookup profile, we're passing them a key run,", 'start': 8852.176, 'duration': 3.161}, {'end': 8862.501, 'text': "we're trying to find the likes and we're console dot logging the data and pizza coding brownie points.", 'start': 8855.337, 'duration': 7.164}], 'summary': "Multiple ways to achieve goal without using 'or' operator, as long as code passes requirements.", 'duration': 23.351, 'max_score': 8839.15, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg8839150.jpg'}], 'start': 7250.084, 'title': 'Javascript fundamentals', 'summary': 'Covers topics such as accessing nested objects and arrays, creating an update records function, using loops and iterations, working with nested for loops and do while loops, and creating a lookup profile function in javascript.', 'chapters': [{'end': 7397.232, 'start': 7250.084, 'title': 'Accessing nested objects in javascript', 'summary': 'Explains how to access nested objects and arrays in javascript using dot and bracket notation, providing examples and highlighting the process of accessing sub properties and nested arrays.', 'duration': 147.148, 'highlights': ['Accessing sub properties of an object using dot or bracket notation', 'Accessing nested arrays using bracket notation', 'Example of accessing nested objects and arrays in JavaScript']}, {'end': 7727.199, 'start': 7398.292, 'title': 'Record collection update', 'summary': 'Discusses creating an update records function in javascript that modifies a record collection by updating, deleting, or adding properties and values, including a fancy way to create a copy of the original object using json parse and stringify.', 'duration': 328.907, 'highlights': ['The function updates a record collection with the property and value passed in, and returns the full collection.', "The function can delete a property if the value is an empty string, and add a track to the end of the tracks array if the property is 'tracks'.", 'A copy of the collection is created using JSON parse and stringify to maintain the original object before any changes are made.']}, {'end': 8246.437, 'start': 7727.52, 'title': 'Javascript loops and iterations', 'summary': 'Demonstrates the use of while and for loops in javascript to iterate through arrays and manipulate data, with examples of adding tracks to a record, using different types of loops, and iterating through arrays to add and manipulate data.', 'duration': 518.917, 'highlights': ['The chapter demonstrates the use of while and for loops in JavaScript to iterate through arrays and manipulate data, with examples of adding tracks to a record, using different types of loops, and iterating through arrays to add and manipulate data.', 'The for loop is the most common type of loop in JavaScript, and it initializes, sets a condition, and specifies the final expression, as demonstrated by examples of filling arrays with numbers from 0 through 4 and 1 through 5.', 'The while loop allows running the same code multiple times while a specified condition is true, as shown by an example of pushing the digits zero through four onto an array and logging the results.', 'The for loop can be used to count backwards by initializing a variable to a specific value, setting a condition, and decrementing the variable, as illustrated by examples of pushing even and odd numbers onto arrays in reverse order.']}, {'end': 8641.878, 'start': 8246.437, 'title': 'Nested for loops and do while loops', 'summary': 'Covers the use of nested for loops to iterate through multi-dimensional arrays and explains the difference between while loops and do while loops, showcasing the functionality of the latter through an example of an empty array and a given condition, logging the output 10 and an empty array, respectively.', 'duration': 395.441, 'highlights': ['The use of nested for loops to iterate through multi-dimensional arrays and multiply every number within the nested arrays.', 'Explanation of the difference between while loops and do while loops, exemplified by an example of an empty array and a given condition.']}, {'end': 8897.377, 'start': 8642.298, 'title': 'Creating lookup profile function', 'summary': 'Demonstrates creating a lookup profile function in javascript to retrieve values of properties for given names in an array of objects, and handling cases where the name or property does not exist, using an iterative approach and the or operator.', 'duration': 255.079, 'highlights': ['Creating a lookup profile function to retrieve values of properties for given names in an array of objects', 'Handling cases where the name does not exist in the array', 'Handling cases where the property does not exist', 'Iterative approach to check each element in the contacts list', 'Using the or operator to handle non-existent properties']}], 'duration': 1647.293, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg7250084.jpg', 'highlights': ['Demonstrates accessing nested objects and arrays in JavaScript', 'Illustrates creating a lookup profile function in JavaScript', 'Shows using loops and iterations to manipulate data in JavaScript', 'Explains updating records function with property and value passed in', 'Utilizes nested for loops to iterate through multi-dimensional arrays']}, {'end': 10035.479, 'segs': [{'end': 8955.805, 'src': 'embed', 'start': 8927.515, 'weight': 1, 'content': [{'end': 8933.023, 'text': "So it's always going to be a number between zero and it could be zero between zero and one, but it could not be one.", 'start': 8927.515, 'duration': 5.508}, {'end': 8941.631, 'text': 'often you want a random whole number instead of a random decimal number.', 'start': 8937.486, 'duration': 4.145}, {'end': 8945.075, 'text': 'That can be accomplished with math.floor.', 'start': 8942.332, 'duration': 2.743}, {'end': 8946.797, 'text': 'We have math.floor here.', 'start': 8945.475, 'duration': 1.322}, {'end': 8949.74, 'text': 'This rounds down to the nearest whole number.', 'start': 8947.137, 'duration': 2.603}, {'end': 8955.805, 'text': 'So we pass in math dot random times 20.', 'start': 8950.241, 'duration': 5.564}], 'summary': 'Using math.floor to generate random whole numbers up to 20.', 'duration': 28.29, 'max_score': 8927.515, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg8927515.jpg'}, {'end': 9037.602, 'src': 'embed', 'start': 9009.685, 'weight': 0, 'content': [{'end': 9012.868, 'text': "And that's going to give us a random number between zero and nine.", 'start': 9009.685, 'duration': 3.183}, {'end': 9018.093, 'text': 'So if I reload this, you can see 9541.', 'start': 9013.368, 'duration': 4.725}, {'end': 9020.576, 'text': "Every time I load it, it's a different random number.", 'start': 9018.093, 'duration': 2.483}, {'end': 9028.114, 'text': 'you can also generate random whole numbers within a range.', 'start': 9025.031, 'duration': 3.083}, {'end': 9034.059, 'text': 'So look at this function here, our random range, it takes a minimum number and a maximum number.', 'start': 9028.514, 'duration': 5.545}, {'end': 9037.602, 'text': 'And then it just runs through this calculation here.', 'start': 9034.62, 'duration': 2.982}], 'summary': 'Generates random numbers between 0 and 9, providing examples like 9541, showcasing its variability.', 'duration': 27.917, 'max_score': 9009.685, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg9009685.jpg'}, {'end': 9186.455, 'src': 'embed', 'start': 9163.007, 'weight': 2, 'content': [{'end': 9172.531, 'text': 'The radix specifies the base of the number in the string, such as base two, or base seven or base eight, base two would be binary.', 'start': 9163.007, 'duration': 9.524}, {'end': 9174.811, 'text': "So that's one of the most common ones to use.", 'start': 9172.671, 'duration': 2.14}, {'end': 9177.452, 'text': 'Now the default is base 10.', 'start': 9175.272, 'duration': 2.18}, {'end': 9179.633, 'text': "That's what we use normally every day.", 'start': 9177.452, 'duration': 2.181}, {'end': 9181.554, 'text': 'But let me show you how that would work.', 'start': 9179.913, 'duration': 1.641}, {'end': 9186.455, 'text': "We're going to convert this number, which is a binary number to an integer.", 'start': 9182.034, 'duration': 4.421}], 'summary': 'The radix specifies the base of the number in the string, such as base two, seven, or eight. the default is base 10, commonly used every day.', 'duration': 23.448, 'max_score': 9163.007, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg9163007.jpg'}, {'end': 9707.834, 'src': 'embed', 'start': 9678.837, 'weight': 3, 'content': [{'end': 9688.201, 'text': "So that's another reason why people use let instead of var is so that they can make sure the variable is only defined in the area they want it to be defined in.", 'start': 9678.837, 'duration': 9.364}, {'end': 9691.242, 'text': "But for now, I'll uncomment this out.", 'start': 9688.761, 'duration': 2.481}, {'end': 9698.564, 'text': 'Const is another way to declare a variable.', 'start': 9696.201, 'duration': 2.363}, {'end': 9703.069, 'text': "It has all the features of let, but it's also read only.", 'start': 9699.004, 'duration': 4.065}, {'end': 9705.511, 'text': 'You cannot reassign a const.', 'start': 9703.349, 'duration': 2.162}, {'end': 9707.834, 'text': "So let's look at this program here.", 'start': 9705.952, 'duration': 1.882}], 'summary': 'Using let instead of var ensures variable scope, and const provides read-only variables.', 'duration': 28.997, 'max_score': 9678.837, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg9678837.jpg'}, {'end': 9920.596, 'src': 'embed', 'start': 9895.279, 'weight': 4, 'content': [{'end': 9901.963, 'text': "As seen previously, a const declaration alone doesn't really protect your data from mutation.", 'start': 9895.279, 'duration': 6.684}, {'end': 9907.987, 'text': "If you have an object or an array, you can still mutate it even if it's declared with const.", 'start': 9902.644, 'duration': 5.343}, {'end': 9914.592, 'text': 'There is something called object.freeze that will prevent data mutation.', 'start': 9908.648, 'duration': 5.944}, {'end': 9917.674, 'text': 'So let me talk to you about object.freeze.', 'start': 9914.972, 'duration': 2.702}, {'end': 9920.596, 'text': "First of all, let's understand this function here.", 'start': 9918.214, 'duration': 2.382}], 'summary': 'Using object.freeze prevents mutation of data declared with const.', 'duration': 25.317, 'max_score': 9895.279, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg9895279.jpg'}], 'start': 8901.636, 'title': 'Javascript fundamentals', 'summary': 'Covers random number generation, functions, operators, variable declaration, and usage of const and object.freeze in javascript, with practical examples and explanations.', 'chapters': [{'end': 9090.28, 'start': 8901.636, 'title': 'Random number generation in javascript', 'summary': "Discusses the creation of random decimal numbers, random whole numbers, and random numbers within a range using javascript's math.random and math.floor functions, with examples demonstrating the generation of random numbers between 0 and 1, between 0 and 19, between 0 and 9, and within a specified range.", 'duration': 188.644, 'highlights': ['Demonstrating the generation of random numbers between 0 and 1 using math.random function', 'Explaining the creation of random whole numbers between 0 and 19 using math.random and math.floor functions', 'Modifying the function to generate a random whole number between 0 and 9', 'Illustrating the generation of random numbers within a specified range using a custom function']}, {'end': 9404.431, 'start': 9090.94, 'title': 'Javascript functions and operators', 'summary': 'Covers the random number generation, the parse int function, and the ternary operator, including their usage and practical examples, such as generating random numbers, converting strings to integers, and using nested conditional operators.', 'duration': 313.491, 'highlights': ['The parse int function can convert a string into an integer and returns NaN if the conversion fails.', 'The parse int function can be used with a radix to specify the base of the number in the string, such as binary.', 'The ternary operator provides a concise one-line if-else expression for conditional statements.', 'Nested ternary operators can be utilized within functions to enhance their conditional logic.']}, {'end': 9731.702, 'start': 9404.971, 'title': 'Javascript variable declaration', 'summary': 'Discusses the differences between var, let, and const in javascript, including their behavior, scope, and limitations, with examples and explanations of how they work in different scenarios.', 'duration': 326.731, 'highlights': ['const makes a variable read-only and cannot be reassigned.', 'let restricts the scope of a variable to the block statement or expression it was declared in.', 'The var keyword allows redeclaration and reassignment of variables within the same scope.']}, {'end': 10035.479, 'start': 9732.202, 'title': 'Using const and object.freeze', 'summary': 'Explains the usage of const keyword in javascript to declare variables that cannot be reassigned, along with the usage of object.freeze to prevent data mutation, and provides an example of using object.freeze to protect the value of pi as 3.14.', 'duration': 303.277, 'highlights': ['The chapter explains the usage of const keyword in JavaScript to declare variables that cannot be reassigned', 'The chapter discusses the usage of object.freeze to prevent data mutation', 'An example of using object.freeze to protect the value of pi as 3.14 is provided']}], 'duration': 1133.843, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg8901636.jpg', 'highlights': ['Illustrating the generation of random numbers within a specified range using a custom function', 'Explaining the creation of random whole numbers between 0 and 19 using math.random and math.floor functions', 'The parse int function can be used with a radix to specify the base of the number in the string, such as binary', 'The chapter explains the usage of const keyword in JavaScript to declare variables that cannot be reassigned', 'The chapter discusses the usage of object.freeze to prevent data mutation']}, {'end': 11185.018, 'segs': [{'end': 10194.679, 'src': 'heatmap', 'start': 10046.664, 'weight': 0, 'content': [{'end': 10054.567, 'text': "It is assigned to this variable magic, but there's no word right before the function keyword to assign the name to the function.", 'start': 10046.664, 'duration': 7.903}, {'end': 10063.21, 'text': 'Whenever you have an anonymous function, you can convert it into an arrow function that makes it a little quicker to write.', 'start': 10055.427, 'duration': 7.783}, {'end': 10069.393, 'text': "So instead of the word function, I'm going to take that out completely and then put an arrow here.", 'start': 10063.631, 'duration': 5.762}, {'end': 10074.64, 'text': "So this is the same thing, except it's just a little quicker to write.", 'start': 10071.078, 'duration': 3.562}, {'end': 10077.481, 'text': 'But we can shorten this even more.', 'start': 10075.06, 'duration': 2.421}, {'end': 10084.605, 'text': "If we're just returning one value here, we don't even need the return keyword.", 'start': 10078.262, 'duration': 6.343}, {'end': 10086.946, 'text': "And we don't need the curly braces.", 'start': 10085.065, 'duration': 1.881}, {'end': 10088.867, 'text': 'So I can delete all this.', 'start': 10087.407, 'duration': 1.46}, {'end': 10091.409, 'text': 'And I can delete all this here.', 'start': 10089.908, 'duration': 1.501}, {'end': 10097.345, 'text': "And now this is the full function from before, but it's just really shortened up.", 'start': 10092.617, 'duration': 4.728}, {'end': 10101.933, 'text': "And to make this even nicer, we're not going to use var, I'm going to change this to const.", 'start': 10097.866, 'duration': 4.067}, {'end': 10111.873, 'text': 'just like in a normal function, you can pass arguments to arrow functions.', 'start': 10107.31, 'duration': 4.563}, {'end': 10115.955, 'text': 'So let me show you how to convert this function into an arrow function.', 'start': 10112.313, 'duration': 3.642}, {'end': 10119.116, 'text': "So it's a normal function now and it has two arguments.", 'start': 10116.395, 'duration': 2.721}, {'end': 10123.159, 'text': "And then it's going to concatenate the two arrays passed in.", 'start': 10119.717, 'duration': 3.442}, {'end': 10129.302, 'text': "So first, we'll take off the function keyword, we're going to leave these parentheses with the parameters.", 'start': 10123.639, 'duration': 5.663}, {'end': 10136.829, 'text': "And Now we'll put the arrow, since all we're doing is returning this, we don't even need the return keyword, and we don't need the curly braces.", 'start': 10129.322, 'duration': 7.507}, {'end': 10140.472, 'text': "So I'll take that off, we'll take this off.", 'start': 10137.309, 'duration': 3.163}, {'end': 10146.157, 'text': "And now we've done this, I just converted that function into an arrow function.", 'start': 10141.233, 'duration': 4.924}, {'end': 10148.719, 'text': 'And it has these two parameters.', 'start': 10146.257, 'duration': 2.462}, {'end': 10155.966, 'text': "So we just have the parameters in parentheses, we have the arrow, and then we have what's being returned right after the arrow.", 'start': 10149.46, 'duration': 6.506}, {'end': 10162.313, 'text': "So if I run that, you'll see that we concatenate the two arrays that are passed in in this example.", 'start': 10156.387, 'duration': 5.926}, {'end': 10165.476, 'text': "And then for good measure, we'll change this to const.", 'start': 10162.773, 'duration': 2.703}, {'end': 10175.946, 'text': 'arrow functions work really well with higher order functions such as map, filter and reduce.', 'start': 10170.242, 'duration': 5.704}, {'end': 10181.09, 'text': "I'll go into more detail at a different time about map, filter and reduce.", 'start': 10176.847, 'duration': 4.243}, {'end': 10187.955, 'text': 'But the main thing to know is that they take functions as arguments for processing collections of data.', 'start': 10181.51, 'duration': 6.445}, {'end': 10194.679, 'text': "Whenever one function takes another function as an argument, that's a good time for an arrow function.", 'start': 10188.435, 'duration': 6.244}], 'summary': 'Transcript explains converting a function to an arrow function, shortening code and using arrow functions with higher order functions.', 'duration': 24.437, 'max_score': 10046.664, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg10046664.jpg'}, {'end': 10546.025, 'src': 'heatmap', 'start': 10415.632, 'weight': 0.925, 'content': [{'end': 10419.135, 'text': "So here are the numbers we're passing in a number and a value.", 'start': 10415.632, 'duration': 3.503}, {'end': 10422.679, 'text': 'So we just have to put value equals one.', 'start': 10419.476, 'duration': 3.203}, {'end': 10428.424, 'text': "So now, if a value isn't passed in, it will be set to one automatically.", 'start': 10423.199, 'duration': 5.225}, {'end': 10431.967, 'text': 'But if it is passed in, it will be set to whatever is passed in.', 'start': 10428.744, 'duration': 3.223}, {'end': 10439.334, 'text': 'So if we run this, we can look on the console, we have seven for this first one, and six for the second.', 'start': 10432.468, 'duration': 6.866}, {'end': 10448.915, 'text': 'And The rest operator allows you to create a function that takes a variable number of arguments.', 'start': 10439.354, 'duration': 9.561}, {'end': 10451.457, 'text': 'The rest operator is three dots.', 'start': 10449.556, 'duration': 1.901}, {'end': 10459.12, 'text': "So we have this function here, and it's taking three arguments, x, y, and z, and it's summing them.", 'start': 10452.057, 'duration': 7.063}, {'end': 10464.943, 'text': "So at first, it's converting these x, y, z into an array called args.", 'start': 10459.48, 'duration': 5.463}, {'end': 10467.743, 'text': "and then it's reducing them.", 'start': 10465.643, 'duration': 2.1}, {'end': 10471.904, 'text': "So it's summing them all up here, and then returning the result.", 'start': 10468.103, 'duration': 3.801}, {'end': 10478.345, 'text': "So right now, if we just run this, it's going to log six, because one plus two plus three is six.", 'start': 10472.524, 'duration': 5.821}, {'end': 10482.126, 'text': 'But we can change this to use the rest operator.', 'start': 10478.925, 'duration': 3.201}, {'end': 10485.867, 'text': "So we're still going to pass in 123.", 'start': 10482.706, 'duration': 3.161}, {'end': 10493.308, 'text': "But where it's accepted here, where we have the arguments here x, y, z, I'm just going to put dot dot dot.", 'start': 10485.867, 'duration': 7.441}, {'end': 10495.209, 'text': "That's the rest operator.", 'start': 10493.908, 'duration': 1.301}, {'end': 10497.852, 'text': "just dot dot dot and I'm going to put args.", 'start': 10495.209, 'duration': 2.643}, {'end': 10507.142, 'text': "So with this rest operator dot dot dot, it will convert everything that's passed in into one array, and the array is called args.", 'start': 10498.793, 'duration': 8.349}, {'end': 10509.785, 'text': "So now we don't need this anymore.", 'start': 10507.663, 'duration': 2.122}, {'end': 10512.388, 'text': 'And it should work the same.', 'start': 10509.805, 'duration': 2.583}, {'end': 10514.37, 'text': "If we run this, we'll get six.", 'start': 10512.408, 'duration': 1.962}, {'end': 10518.213, 'text': 'But we can also now add any number of numbers.', 'start': 10515.031, 'duration': 3.182}, {'end': 10521.915, 'text': "So I'll put a 4 on the end and 10.", 'start': 10518.693, 'duration': 3.222}, {'end': 10523.597, 'text': "It's going to add those numbers together.", 'start': 10521.915, 'duration': 1.682}, {'end': 10526.619, 'text': 'So before we can only pass in three arguments.', 'start': 10524.057, 'duration': 2.562}, {'end': 10530.241, 'text': 'And now we can have any number of arguments.', 'start': 10527.119, 'duration': 3.122}, {'end': 10538.166, 'text': 'The spread operator looks just like the rest operator.', 'start': 10534.704, 'duration': 3.462}, {'end': 10539.167, 'text': 'Three dots.', 'start': 10538.486, 'duration': 0.681}, {'end': 10546.025, 'text': 'but it expands an already existing array or it spreads out an array.', 'start': 10539.963, 'duration': 6.062}], 'summary': 'The transcript explains the rest and spread operators, allowing for variable number of arguments and expanding existing arrays.', 'duration': 130.393, 'max_score': 10415.632, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg10415632.jpg'}, {'end': 10459.12, 'src': 'embed', 'start': 10432.468, 'weight': 1, 'content': [{'end': 10439.334, 'text': 'So if we run this, we can look on the console, we have seven for this first one, and six for the second.', 'start': 10432.468, 'duration': 6.866}, {'end': 10448.915, 'text': 'And The rest operator allows you to create a function that takes a variable number of arguments.', 'start': 10439.354, 'duration': 9.561}, {'end': 10451.457, 'text': 'The rest operator is three dots.', 'start': 10449.556, 'duration': 1.901}, {'end': 10459.12, 'text': "So we have this function here, and it's taking three arguments, x, y, and z, and it's summing them.", 'start': 10452.057, 'duration': 7.063}], 'summary': 'Using the rest operator, a function sums variable arguments, resulting in 7 and 6.', 'duration': 26.652, 'max_score': 10432.468, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg10432468.jpg'}, {'end': 10576.251, 'src': 'embed', 'start': 10546.666, 'weight': 2, 'content': [{'end': 10551.308, 'text': 'So it takes an array and spreads out into its individual parts.', 'start': 10546.666, 'duration': 4.642}, {'end': 10559.651, 'text': 'So here we have an array with some months and the spread operator can spread this array, this R1,', 'start': 10551.768, 'duration': 7.883}, {'end': 10564.073, 'text': 'into the individual months instead of the actual array here.', 'start': 10559.651, 'duration': 4.422}, {'end': 10569.621, 'text': 'you can only use it in an argument to a function or in an array literal.', 'start': 10564.773, 'duration': 4.848}, {'end': 10571.384, 'text': "So let's look at this.", 'start': 10569.981, 'duration': 1.403}, {'end': 10576.251, 'text': "So right now we're setting array two to equal array one.", 'start': 10571.764, 'duration': 4.487}], 'summary': 'The spread operator separates array elements into individual parts, usable in arguments or array literals.', 'duration': 29.585, 'max_score': 10546.666, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg10546666.jpg'}, {'end': 10766.93, 'src': 'embed', 'start': 10734.574, 'weight': 3, 'content': [{'end': 10742.659, 'text': "Now we're going to use destructuring to obtain the average temperature for tomorrow from the input object average temperatures.", 'start': 10734.574, 'duration': 8.085}, {'end': 10744.42, 'text': 'So we have average temperatures.', 'start': 10743.12, 'duration': 1.3}, {'end': 10748.483, 'text': "It has today and tomorrow's temperatures.", 'start': 10744.44, 'duration': 4.043}, {'end': 10753.947, 'text': 'And then the average temperature is inputted into this function here.', 'start': 10749.464, 'duration': 4.483}, {'end': 10766.93, 'text': "So I'm going to change this line here to use destructuring and destructure the average temperatures object here that's passed into this function.", 'start': 10754.907, 'duration': 12.023}], 'summary': 'Using destructuring to obtain average temperature for tomorrow from input object.', 'duration': 32.356, 'max_score': 10734.574, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg10734574.jpg'}], 'start': 10040.541, 'title': 'Javascript functions and destructuring', 'summary': 'Covers arrow functions, higher order functions, flexible functions, and destructuring in javascript, demonstrating their benefits and practical applications to process data effectively and neatly assign values from objects to variables.', 'chapters': [{'end': 10388.174, 'start': 10040.541, 'title': 'Arrow functions and higher order functions', 'summary': 'Explains how to convert a function into an arrow function, including the benefits such as shorter syntax, and demonstrates the use of arrow functions with higher order functions like map and filter to process data effectively.', 'duration': 347.633, 'highlights': ['Arrow functions provide a shorter syntax for writing functions, making code more concise and readable.', 'Demonstrated the use of arrow functions with higher order functions like map and filter to process collections of data effectively.', 'Illustrated the usage of arrow functions to filter and map data effectively, showing how they can be written succinctly on one line for processing data efficiently.']}, {'end': 10733.734, 'start': 10388.174, 'title': 'Flexible functions and destructuring assignment', 'summary': 'Explores the use of default parameters to create flexible functions and introduces the rest and spread operators, as well as the destructuring assignment, which allows for neatly assigning values from an object to variables.', 'duration': 345.56, 'highlights': ['The rest operator allows creation of a function that takes a variable number of arguments, converting them into an array and summing them up, resulting in the ability to add any number of numbers together.', 'The spread operator expands an existing array into its individual parts and can be used to create a copy of an array, allowing for distinct arrays despite changes to the original array.', 'The destructuring assignment provides a simpler and quicker way to assign variables for each element in an object, enhancing the process of assigning values from an object to variables.']}, {'end': 11185.018, 'start': 10734.574, 'title': 'Using destructuring in javascript', 'summary': 'Discusses using destructuring in javascript to obtain average temperatures, assign variables from nested objects and arrays, switch the places of variables, reassign array elements using the rest operator, and pass objects as function parameters, demonstrating the application and benefits of destructuring in javascript.', 'duration': 450.444, 'highlights': ['Using destructuring to obtain average temperature for tomorrow from the input object average temperatures', 'Assigning variables from nested objects using destructuring', 'Assigning variables from arrays using destructuring', 'Using destructuring to switch the places of variables', 'Reassigning array elements using the rest operator in destructuring', "Passing an object as a function's parameter using destructuring"]}], 'duration': 1144.477, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg10040541.jpg', 'highlights': ['Demonstrated the use of arrow functions with higher order functions like map and filter to process collections of data effectively.', 'The rest operator allows creation of a function that takes a variable number of arguments, converting them into an array and summing them up, resulting in the ability to add any number of numbers together.', 'The spread operator expands an existing array into its individual parts and can be used to create a copy of an array, allowing for distinct arrays despite changes to the original array.', 'Using destructuring to obtain average temperature for tomorrow from the input object average temperatures']}, {'end': 12384.895, 'segs': [{'end': 11235.488, 'src': 'embed', 'start': 11185.598, 'weight': 0, 'content': [{'end': 11192.743, 'text': 'When you are getting information from an AJAX request or an API request, it will often have a lot more information than what you need.', 'start': 11185.598, 'duration': 7.145}, {'end': 11197.946, 'text': 'And you can use destructuring to get it down to what we actually want to work with.', 'start': 11193.163, 'duration': 4.783}, {'end': 11208.209, 'text': 'Template literals are a special type of string that makes creating complex strings easier.', 'start': 11202.165, 'duration': 6.044}, {'end': 11210.391, 'text': 'You make them with this backtick.', 'start': 11208.729, 'duration': 1.662}, {'end': 11214.113, 'text': "So here's an example of a template literal right here.", 'start': 11210.831, 'duration': 3.282}, {'end': 11218.636, 'text': 'We have the beginning backtick and we have the ending backtick.', 'start': 11214.553, 'duration': 4.083}, {'end': 11224.02, 'text': 'This would be in place of using a quotation, a single or double quotation mark.', 'start': 11219.196, 'duration': 4.824}, {'end': 11233.726, 'text': 'A few advantages of using these template literals, these backticks, instead of quotation marks are, one, you can make multi-line strings.', 'start': 11224.68, 'duration': 9.046}, {'end': 11235.488, 'text': 'You can see this has two lines.', 'start': 11234.067, 'duration': 1.421}], 'summary': 'Using destructuring to filter ajax/api data and creating multi-line strings with template literals.', 'duration': 49.89, 'max_score': 11185.598, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg11185598.jpg'}, {'end': 11473.319, 'src': 'embed', 'start': 11436.206, 'weight': 2, 'content': [{'end': 11438.467, 'text': "the array looks just like it's supposed to be.", 'start': 11436.206, 'duration': 2.261}, {'end': 11441.148, 'text': 'if you look in the console, it returns correctly.', 'start': 11438.467, 'duration': 2.681}, {'end': 11450.94, 'text': 'ES six added some nice support for easily defining object literals.', 'start': 11446.454, 'duration': 4.486}, {'end': 11459.832, 'text': 'If we look at this function here, this function is an arrow function, it takes in three variables, name, age and gender.', 'start': 11451.441, 'duration': 8.391}, {'end': 11463.477, 'text': "And it's going to return an object.", 'start': 11459.852, 'duration': 3.625}, {'end': 11473.319, 'text': 'and the object is going to have a series of key value pairs where the key is the name, age and gender, and the values are the past in variable names,', 'start': 11464.037, 'duration': 9.282}], 'summary': 'Es6 supports easily defining object literals with arrow functions taking in three variables and returning an object.', 'duration': 37.113, 'max_score': 11436.206, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg11436206.jpg'}, {'end': 11829.043, 'src': 'embed', 'start': 11803.239, 'weight': 3, 'content': [{'end': 11810.941, 'text': "So here's the thing about this challenge is that when we construct the class, it's going to accept Fahrenheit temperature,", 'start': 11803.239, 'duration': 7.702}, {'end': 11815.422, 'text': "but we're going to create a getter and setter in the class to obtain the temperature in Celsius.", 'start': 11810.941, 'duration': 4.481}, {'end': 11819.603, 'text': "So it's going to have to do the calculation right within the class.", 'start': 11815.902, 'duration': 3.701}, {'end': 11820.884, 'text': "So let's do that.", 'start': 11820.023, 'duration': 0.861}, {'end': 11825.439, 'text': "We're going to do a class of thermostat.", 'start': 11821.224, 'duration': 4.215}, {'end': 11829.043, 'text': 'And in this class, we need the constructor.', 'start': 11827.321, 'duration': 1.722}], 'summary': 'Creating a thermostat class to convert fahrenheit to celsius.', 'duration': 25.804, 'max_score': 11803.239, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg11803239.jpg'}, {'end': 12170.359, 'src': 'embed', 'start': 12143.898, 'weight': 4, 'content': [{'end': 12150.462, 'text': 'So if I run this, you can see Hello, and all capital letters is successfully imported this function from the other file.', 'start': 12143.898, 'duration': 6.564}, {'end': 12152.343, 'text': 'And we used it in this file.', 'start': 12150.862, 'duration': 1.481}, {'end': 12159.152, 'text': 'I talked a little bit about export in the last lesson.', 'start': 12156.59, 'duration': 2.562}, {'end': 12168.158, 'text': "But now I'm going to go into more detail, you export functions and variables from one file so that you can import them into another file.", 'start': 12159.292, 'duration': 8.866}, {'end': 12170.359, 'text': "That's how you can reuse different code.", 'start': 12168.458, 'duration': 1.901}], 'summary': 'Explains importing and exporting functions and variables between files for code reusability.', 'duration': 26.461, 'max_score': 12143.898, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg12143898.jpg'}, {'end': 12380.206, 'src': 'heatmap', 'start': 12276.728, 'weight': 1, 'content': [{'end': 12284.672, 'text': "So if you're importing everything, you always start off with import star as and then this can be anything it can be any object name that you create.", 'start': 12276.728, 'duration': 7.944}, {'end': 12289.174, 'text': "And then you're going to put from and then you put the file name and quotation marks just like that.", 'start': 12285.092, 'duration': 4.082}, {'end': 12297.332, 'text': 'before when I talked about exports, I was talking about named exports.', 'start': 12293.61, 'duration': 3.722}, {'end': 12300.133, 'text': "There's also something called an export default.", 'start': 12297.732, 'duration': 2.401}, {'end': 12302.694, 'text': 'This is a fallback export.', 'start': 12300.573, 'duration': 2.121}, {'end': 12307.516, 'text': "And it's often used if you only want to export one thing from a file.", 'start': 12303.054, 'duration': 4.462}, {'end': 12318.1, 'text': "So if you let's say I want this to be my fallback export, I'm just going to only export this one thing from the file, I can just put export default.", 'start': 12308.016, 'duration': 10.084}, {'end': 12325.209, 'text': "And So now we know that this is just the fallback, though, basically just the one thing we're going to export from this file.", 'start': 12318.12, 'duration': 7.089}, {'end': 12332.997, 'text': 'So we talked about exporting a default export.', 'start': 12329.955, 'duration': 3.042}, {'end': 12336.38, 'text': "Now I'm going to show you how to import a default export.", 'start': 12333.578, 'duration': 2.802}, {'end': 12340.163, 'text': "It's pretty much the same as before, but there is a slight difference.", 'start': 12336.96, 'duration': 3.203}, {'end': 12347.068, 'text': 'So we are going to pretend we have a file called math functions that has a default export name subtract.', 'start': 12340.603, 'duration': 6.465}, {'end': 12349.229, 'text': 'So let me show you how you would import that.', 'start': 12347.528, 'duration': 1.701}, {'end': 12355.914, 'text': "So it's going to be import, subtract, And we've already reached the difference here.", 'start': 12349.63, 'duration': 6.284}, {'end': 12359.736, 'text': "If it's not a default export, you will put curly braces around this.", 'start': 12356.194, 'duration': 3.542}, {'end': 12361.918, 'text': 'But it is a default export.', 'start': 12360.177, 'duration': 1.741}, {'end': 12364.439, 'text': 'So we are not going to use curly braces.', 'start': 12362.038, 'duration': 2.401}, {'end': 12366.881, 'text': "But we still have to say what it's from.", 'start': 12364.78, 'duration': 2.101}, {'end': 12371.724, 'text': 'So from math functions.', 'start': 12367.281, 'duration': 4.443}, {'end': 12376.708, 'text': 'Okay, so that is how you would import a default export.', 'start': 12372.885, 'duration': 3.823}, {'end': 12380.206, 'text': 'Well, thanks for watching.', 'start': 12379.003, 'duration': 1.203}], 'summary': 'Explains importing and exporting in javascript, including fallback export and default export.', 'duration': 103.478, 'max_score': 12276.728, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg12276728.jpg'}], 'start': 11185.598, 'title': 'Javascript es6 features and syntax', 'summary': 'Covers the usage of template literals, destructuring, es6 syntax, object creation, and import/export functionality in javascript. it emphasizes advantages such as simplification, reusability, and examples for illustration.', 'chapters': [{'end': 11301.269, 'start': 11185.598, 'title': 'Using template literals and destructuring', 'summary': 'Discusses the usage of template literals and destructuring in javascript, emphasizing the advantages such as creating multi-line strings, embedding variables directly into strings, and avoiding the need to escape quotation marks, illustrated through an example.', 'duration': 115.671, 'highlights': ['Template literals allow creating multi-line strings, embedding variables directly into strings, and avoiding the need to escape quotation marks, simplifying string manipulation in JavaScript.', 'Destructuring is used to extract specific data from AJAX or API requests, enabling developers to work with only the necessary information.', "The example illustrates how template literals can be used to create complex strings and embed variables directly into the strings, resulting in 'hello, my name is Zodiac Hasbro. I am 56 years old.'"]}, {'end': 11781.969, 'start': 11302.31, 'title': 'Es6 syntax and object creation', 'summary': 'Covers es6 syntax including template literals, arrow functions, object creation using class keyword and getter and setter functions, demonstrating their usage and simplification with examples, and it also explains the use of loop and push method for creating arrays.', 'duration': 479.659, 'highlights': ['The chapter covers ES6 syntax including template literals, arrow functions, object creation using class keyword and getter and setter functions, demonstrating their usage and simplification with examples, and it also explains the use of loop and push method for creating arrays.', 'It explains the use of loop and push method for creating arrays.', 'It demonstrates the usage and simplification of getter and setter functions with examples.', 'The chapter covers ES6 syntax including template literals, arrow functions, object creation using class keyword.']}, {'end': 12384.895, 'start': 11782.429, 'title': 'Thermostat class and import/export in javascript', 'summary': 'Demonstrates creating a thermostat class with getter and setter for temperature conversion from fahrenheit to celsius, and also explains the import and export functionality in javascript for reusing code in different files.', 'duration': 602.466, 'highlights': ['Creating a thermostat class with getter and setter for temperature conversion from Fahrenheit to Celsius', 'Demonstrating the use of import and export functionality in JavaScript for reusing code in different files']}], 'duration': 1199.297, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/PkZNo7MFNFg/pics/PkZNo7MFNFg11185598.jpg', 'highlights': ['Template literals allow creating multi-line strings, embedding variables directly into strings, and avoiding the need to escape quotation marks, simplifying string manipulation in JavaScript.', 'Destructuring is used to extract specific data from AJAX or API requests, enabling developers to work with only the necessary information.', 'The chapter covers ES6 syntax including template literals, arrow functions, object creation using class keyword and getter and setter functions, demonstrating their usage and simplification with examples.', 'Creating a thermostat class with getter and setter for temperature conversion from Fahrenheit to Celsius', 'Demonstrating the use of import and export functionality in JavaScript for reusing code in different files']}], 'highlights': ['The course covers basic JavaScript syntax and offers live coding challenges.', 'Emphasizes practical project-based learning for mastering JavaScript.', 'Demonstration of nested arrays, showcasing the creation of arrays within arrays.', 'Illustrates creating a lookup profile function in JavaScript.', 'Demonstrated the use of arrow functions with higher order functions like map and filter to process collections of data effectively.', 'The rest operator allows creation of a function that takes a variable number of arguments.', 'Template literals allow creating multi-line strings, embedding variables directly into strings.', 'The chapter covers ES6 syntax including template literals, arrow functions, object creation using class keyword and getter and setter functions.', 'Illustrating the generation of random numbers within a specified range using a custom function.', 'The parse int function can be used with a radix to specify the base of the number in the string.']}