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
+13-10Lines changed: 13 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -213,14 +213,7 @@ The `symbol` type is used to create unique identifiers for objects. We have to m
213
213
214
214
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.
215
215
216
-
It supports two forms of syntax:
217
-
218
-
1. As an operator: `typeof x`.
219
-
2. As a function: `typeof(x)`.
220
-
221
-
In other words, it works with parentheses or without them. The result is the same.
222
-
223
-
The call to `typeof x` returns a string with the type name:
216
+
A call to `typeof x` returns a string with the type name:
The last three lines may need additional explanation:
252
245
253
246
1.`Math` is a built-in object that provides mathematical operations. We will learn it in the chapter <info:number>. Here, it serves just as an example of an object.
254
-
2. The result of `typeof null` is `"object"`. That's an officially recognized error in `typeof` behavior, coming from the early days of JavaScript and kept for compatibility. Definitely, `null` is not an object. It is a special value with a separate type of its own.
247
+
2. The result of `typeof null` is `"object"`. That's an officially recognized error in `typeof`, coming from very early days of JavaScript and kept for compatibility. Definitely, `null` is not an object. It is a special value with a separate type of its own. The behavior of `typeof` is wrong here.
255
248
3. The result of `typeof alert` is `"function"`, because `alert` is a function. We'll study functions in the next chapters where we'll also see that there's no special "function" type in JavaScript. Functions belong to the object type. But `typeof` treats them differently, returning `"function"`. That also comes from the early days of JavaScript. Technically, such behavior isn't correct, but can be convenient in practice.
256
249
250
+
```smart header="The `typeof(x)` syntax"
251
+
You may also come across another syntax: `typeof(x)`. It's the same as `typeof x`.
252
+
253
+
To put it clear: `typeof` is an operator, not a function. The parentheses here aren't a part of `typeof`. It's the kind of parentheses used for mathematical grouping.
254
+
255
+
Usually, such parentheses contain a mathematical expression, such as `(2 + 2)`, but here they contain only one argument `(x)`. Syntactically, they allow to avoid a space between the `typeof` operator and its argument, and some people like it.
256
+
257
+
Some people prefer `typeof(x)`, although the `typeof x` syntax is much more common.
258
+
```
259
+
257
260
## Summary
258
261
259
262
There are 8 basic data types in JavaScript.
@@ -269,7 +272,7 @@ There are 8 basic data types in JavaScript.
269
272
270
273
The `typeof` operator allows us to see which type is stored in a variable.
271
274
272
-
-Two forms: `typeof x` or`typeof(x)`.
275
+
- Usually used as `typeof x`, but `typeof(x)` is also possible.
273
276
- Returns a string with the name of the type, like `"string"`.
274
277
- For `null` returns `"object"` -- this is an error in the language, it's not actually an object.
Copy file name to clipboardExpand all lines: 2-ui/3-event-details/6-pointer-events/article.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -271,7 +271,7 @@ Pointer events allow handling mouse, touch and pen events simultaneously, with a
271
271
272
272
Pointer events extend mouse events. We can replace `mouse` with `pointer` in event names and expect our code to continue working for mouse, with better support for other device types.
273
273
274
-
For drag'n'drops and complex touch interactions that the browser may decide to hijack and handle on its own - remember to cancel the default action on events and set `touch-events: none` in CSS for elements that we engage.
274
+
For drag'n'drops and complex touch interactions that the browser may decide to hijack and handle on its own - remember to cancel the default action on events and set `touch-action: none` in CSS for elements that we engage.
0 commit comments