You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: 1-js/02-first-steps/05-types/article.md
+28-2
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ message = 123456;
10
10
11
11
Programming languages that allow such things are called "dynamically typed", meaning that there are data types, but variables are not bound to any of them.
12
12
13
-
There are seven basic data types in JavaScript. Here, we'll cover them in general and in the next chapters we'll talk about each of them in detail.
13
+
There are eight basic data types in JavaScript. Here, we'll cover them in general and in the next chapters we'll talk about each of them in detail.
14
14
15
15
## A number
16
16
@@ -180,6 +180,31 @@ All other types are called "primitive" because their values can contain only a s
180
180
181
181
The `symbol` type is used to create unique identifiers for objects. We mention it here for completeness, but we'll study it after objects.
182
182
183
+
## BigInt
184
+
185
+
In JavaScript, the Number type cannot represent integer values larger than 2<sup>53</sup>-1. This limitation has forced many of us to use inefficient workarounds. BigInt is a new data type intended to fix just that. A BigInt is created by appending n to the end of an integer literal — 10n — or by calling the function BigInt().
186
+
187
+
```js run
188
+
consttheBiggestInt=9007199254740991n;
189
+
190
+
consthuge=BigInt(9007199254740991);
191
+
192
+
alert(typeof biggestInt); // shows "bigint"
193
+
194
+
alert(typeof huge); // shows "bigint"
195
+
```
196
+
Bigint can mostly be used like number but there are some key differences
197
+
- Most math operatioons work on it normally
198
+
- It cannot be mixed and match with number while apllying binary operations it has to be coerced into each other but be careful it can lead to some precision losses
199
+
- The / operator also works as expected with whole numbers. However, since these are BigInts and not BigDecimals, this operation will round towards 0, which is to say, it will not return any fractional digits.
200
+
201
+
To know more in detail about the java script newest addition in prmitive types please visit [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) docs for it
202
+
203
+
204
+
```smart header="Compatability issues"
205
+
Right now it only compatible with firefox and chrome but is not supported in Safari.
206
+
```
207
+
183
208
## The typeof operator [#type-typeof]
184
209
185
210
The `typeof` operator returns the type of the argument. It's useful when we want to process values of different types differently or just want to do a quick check.
@@ -226,7 +251,7 @@ The last three lines may need additional explanation:
226
251
227
252
## Summary
228
253
229
-
There are 7 basic data types in JavaScript.
254
+
There are 8 basic data types in JavaScript.
230
255
231
256
-`number` for numbers of any kind: integer or floating-point.
232
257
-`string` for strings. A string may have one or more characters, there's no separate single-character type.
@@ -235,6 +260,7 @@ There are 7 basic data types in JavaScript.
235
260
-`undefined` for unassigned values -- a standalone type that has a single value `undefined`.
236
261
-`object` for more complex data structures.
237
262
-`symbol` for unique identifiers.
263
+
-`bigint` is for displaying numbers greater than 2<sup>53</sup>-1
238
264
239
265
The `typeof` operator allows us to see which type is stored in a variable.
0 commit comments