- Overview
- Transcript
5.3 Working With Numbers
In this lesson we’ll take a look at some of the properties and methods that make up the API of the built-in Number
object.
Syntax
isNaN
parseFloat
parseInt
toFixed
toExponential
toPrecision
toString
1.Introduction2 lessons, 07:42
1.1Introduction02:12
1.2Setup05:30
2.Language Fundamentals8 lessons, 1:00:53
2.1Variables06:33
2.2Data Types11:28
2.3Arithmetic, Assignment, and Comparison Operators10:24
2.4Unary, Logical, Comma, and Spread Operators09:02
2.5Operator Precedence03:50
2.6Reserved Words04:17
2.7Strict Mode04:34
2.8Functions10:45
3.Data Structures5 lessons, 22:52
3.1Arrays04:29
3.2Objects04:30
3.3Sets04:57
3.4Maps04:21
3.5Weak Maps and Weak Sets04:35
4.Controlling Program Execution7 lessons, 37:06
4.1Conditionals07:49
4.2Switch Statements04:41
4.3The For Loop06:39
4.4The `for .. in` Loop05:17
4.5The `for .. of` Loop04:02
4.6Iterators05:03
4.7While Loops03:35
5.Using JavaScript13 lessons, 1:44:36
5.1Working With Strings09:32
5.2Template Literals05:46
5.3Working With Numbers06:57
5.4Working With Arrays12:53
5.5Iterating and Transforming Arrays07:33
5.6Working With the Object Type13:55
5.7Object Literal Extensions06:45
5.8Working With Object Instances06:45
5.9Getters and Setters05:00
5.10Custom Objects11:28
5.11The `Math` API04:54
5.12Working With Dates and Times08:10
5.13The `Array` Constructor04:58
6.Functions8 lessons, 56:07
6.1The `this` Object06:15
6.2Working With Functions10:11
6.3Scope07:37
6.4Arrow Functions06:59
6.5Generator Functions08:13
6.6Closures05:00
6.7Prototypes06:26
6.8Default and Rest Parameters05:26
7.Miscellaneous6 lessons, 52:39
7.1Destructuring Assignments08:09
7.2AJAX08:30
7.3Regular Expressions10:51
7.4More About Regular Expressions08:38
7.5Classes06:48
7.6ES Modules09:43
8.Working With the DOM6 lessons, 37:39
8.1Selecting HTML Elements05:02
8.2Manipulating HTML Elements07:40
8.3DOM Traversal05:25
8.4Adding and Removing Elements04:45
8.5Creating Elements and Other Nodes04:39
8.6DOM Events10:08
9.Web APIs4 lessons, 17:41
9.1The Selector API03:03
9.2Geolocation05:29
9.3Web Storage05:24
9.4Web Workers03:45
10.Asynchronous JavaScript5 lessons, 26:23
10.1Promises09:52
10.2Promise Chaining05:11
10.3The async Keyword03:21
10.4The await Keyword04:04
10.5More About async and await03:55
11.Conclusion1 lesson, 00:43
11.1Conclusion00:43
5.3 Working With Numbers
Hey folks, in this lesson we're going to look at numbers. Like strings, numbers are another type of primitive. And also like strings, they have a number of properties and methods for working with them. And that's what we're going to focus on today. The number object contain some properties that present different values in JavaScript. Like max_value, min_value, max_safe_integer, and min_safe_integer, which are the maximum and minimum values and safe values that it is possible to use in JavaScript. There are also some very useful methods. There is a special number in JavaScript called NaN, which is produced when we try to do something with a number which is not possible. Like multiplying it by a string. The problem with NaN values is that they ruin any mathematical calculations that you are trying to perform. And they are very hard to detect. Because NaN is not equal to anything, not even itself, so this makes it very hard to test for in a conditional. To overcome this, we have the isNaN method, which we can use to detect when a value is NaN. Let's take a look. And lets check the output now in our browser. And we can see that, that has resulted in the value of true. So, isNaN is a static method which is invoked directly on the number object rather than on number instances. We also have these static methods isFinite, isInteger, and isSafeInteger for performing others checks on numbers. The last two static methods are very commonly used. If we want to convert strings into numbers, there are two more static methods that we can make use of. parseFloat for parsing floating point numbers from strings, and parseInt, for parsingintegers. Let's take a look at how these two work. So here we've defined two strings which happen to contain numbers. Let's convert them directly into numbers instead of strings. So they look like numbers, but let's use the typeof operator just to be certain. And we can see that they are both numbers. The strings that we're parsing from don't have to just contain numbers, they can also contain numbers and letters. And these two methods should still work in the same way depending on where the numbers occur. And we can see that we have still managed to extract the numbers from those strings, even though the strings contain more than just numbers. However, in order to parse numbers successfully from strings, the numbers need to come at the start of the string. So when we add non numerical numbers to the start of a string, before any numbers occur, and try to parse those numbers out of it, we'll get the value not a number. And just to highlight how dangerous the not a number or NAN value is, let's just go back and add typeof again to the start of the first console log. And it misleadingly tells us that we're still working with a number, because the NAN value is a type of number. So we have to be very careful when parsing numbers from strings to make sure that we don't end up with this NAN value. As well as the static methods that we've looked at so far, number instances also have several methods that can be used to work with the number in some way. For example, to convert a number to have a specific number of decimal places, we can use the toFixed method So we've invoked the toFixed method on our number instance, and we've passed it the argument 2. So it should truncate the number down to two decimal places. Let's just check the output in our browser. And as you can see, that has worked. And the rounding that has occurred is probably what you would expect from regular mathematics. As well as toFixed, we also have toExponential, toLocaleString, toPrecision, and toString methods. The toFixed and toPrecision methods are very similar. The difference between them is that toFixed rounds to a fixed number of decimal places while toPrecision formats a number to a given number of significant digits. So in this lesson we looked at numbers. We saw the static properties and methods that we can use from the number object directly. And we also saw some of the instance methods that we can use with number instances. In the next lesson, we'll move on to look at how we can work with arrays. Thanks for watching.