- Notifications
You must be signed in to change notification settings - Fork9
Type Conversions#64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
illright wants to merge4 commits intojavascript-tutorial:masterChoose a base branch fromillright:type-conversions
base:master
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Uh oh!
There was an error while loading.Please reload this page.
Open
Changes fromall commits
Commits
Show all changes
4 commits Select commitHold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
133 changes: 67 additions & 66 deletions1-js/02-first-steps/07-type-conversions/article.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,150 +1,151 @@ | ||
# TypeConversies | ||
Gewoonlijk converterenoperatorsen functies de aan hen gegeven waarden automatisch naar het juiste type. | ||
`alert`converteert bijvoorbeeld elke waarde automatisch naar een tekenreeks om het tonen. Wiskundige bewerkingen converteren waarden naar getallen. | ||
Er zijn ook gevallen waarin wemoeten een waarde uitdrukkelijk converteren naar het verwachte type. | ||
```smart header="Nog niet over objecten gesproken" | ||
Indit hoofdstuk, wezullen niet bespreken objecten. Voor nu zullen we het alleen over primitieven hebben. | ||
Later,nadat wehebben leren over objecten, zullen weinhet hoofdstuk <info:object-toprimitive>zien hoe objecten passen. | ||
``` | ||
##Tekenreeks Conversie | ||
Tekenreeks conversie gebeurt wanneer wehebben de tekenreeksvorm van een waarde nodig. | ||
`alert(value)`doet het bijvoorbeeld om de waarde te tonen. | ||
Wekunnen ook aan de `String(value)`(tekenreeks) functie roepen om een waarde naar een tekenreeks te converteren: | ||
```js run | ||
let value = true; | ||
alert(typeof value); // boolean | ||
*!* | ||
value = String(value); //nuisvalue een tekenreeks "true" | ||
alert(typeof value); // string | ||
*/!* | ||
``` | ||
Tekenreeks conversie ismeestal duidelijk. Een `false`wordt `"false"`, `null`wordt `"null"`,ezv. | ||
##Numerieke Conversie | ||
Numerieke conversie gebeurt automatischinwiskundige functie en uitdrukkingen. | ||
Wanneer bijvoorbeeld verdeling`/`wordt toegepast op niet-getallen: | ||
```js run | ||
alert( "6" / "2" ); // 3,tekenreeksen worden geconverteerd naar getallen | ||
``` | ||
Wekunnen de`Number(value)`(nummer) functie gebruiken om een `value`uitdrukkelijk naar een getal converteren: | ||
```js run | ||
let str = "123"; | ||
alert(typeof str); // string | ||
let num = Number(str); //wordt een getal 123 | ||
alert(typeof num); // number | ||
``` | ||
Expliciete conversie isgewoonlijk vereist wanneer weeen waarde uit een op tekenreeks gebaseerde bron zoals een tekstformulier lezen, maar wervachten dat er een getal wordt ingevoerd. | ||
Als de tekenreeks geen geldig getal is, is het resultaat van een dergelijke conversie `NaN` (niet een getal). Bijvoorbeeld: | ||
```js run | ||
let age = Number("een willekeurig tekenreeks in plaats van een getal"); | ||
alert(age); // NaN,conversie mislukt | ||
``` | ||
Numerieke conversie regels: | ||
|Waarde |Wordt... | | ||
|------ |--------| | ||
|`undefined` |`NaN`| | ||
|`null` |`0`| | ||
|<code>true en false</code> | `1` and `0` | | ||
| `string` |Witruimte vanaf het begin en het einde worden verwijderd. Als de resterende tekenreeks leeg is, is het resultaat `0`.En andersishet getal "gelezen" uit de tekenreeks. Een fout geeft `NaN`. | | ||
Voorbeelden: | ||
```js run | ||
alert( Number(" 123 ") ); // 123 | ||
alert( Number("123z") ); // NaN (fout bij het lezen van een getal op "z") | ||
alert( Number(true) ); // 1 | ||
alert( Number(false) ); // 0 | ||
``` | ||
Houd er rekening mee dat`null`en `undefined`gedragen hier anders: `null`wordt nul terwijl `undefined` `NaN` wordt. | ||
Meeste wiskundige operatorsuitvoeren ook een dergelijke conversie, dat zullen we zieninhet volgende hoofdstuk. | ||
##Booleaanse Conversie | ||
Booleanse conversie isde gemakkelijkste. | ||
Het gebeurt inlogische bewerkingen (laterzullen we conditietests en andere soortgelijke dingen ontmoeten), maar kan ook expliciet worden uitgevoerd met een oproep naar `Boolean(value)`. | ||
De conversieregel: | ||
-Waarden die intuïtief "leeg" zijn, zoals `0`,een lege tekenreeks, `null`, `undefined` en `NaN` worden `false`. | ||
-Andere waarden worden `true`. | ||
Voorbeelden: | ||
```js run | ||
alert( Boolean(1) ); // true | ||
alert( Boolean(0) ); // false | ||
alert( Boolean("hallo") ); // true | ||
alert( Boolean("") ); // false | ||
``` | ||
````warn header="Let op: de tekenreeks met nul `\"0\"` is `true`" | ||
Sommige talen (namelijk PHP)behandelen `"0"`als `false`.Maar in JavaScript is een niet-lege tekenreeks altijd `true`. | ||
```js run | ||
alert( Boolean("0") ); // true | ||
alert( Boolean(" ") ); //spaties, ook true (elke niet-lege tekenreeks is true) | ||
``` | ||
```` | ||
##Overzicht | ||
De drie meest gebruiktetypeconversies zijn naar tekenreeks, naar getaal en naar boolean. | ||
**`Tekenreeks Conversie`** --Gebeurt als weiets uitvoeren. Kan worden uitgevoerd met `String(value)` (tekenreeks). De conversie naar tekenreeks ligt meestal voor de hand voor primitieve waarden. | ||
**`Numerieke Conversie`** --Gebeurt inwiskundige bewerkingen. Kan worden uitgevored met `Number(value)` (getal). | ||
De conversie volgt de regels: | ||
| Waarde | Wordt... | | ||
| ------ | -------- | | ||
| `undefined` | `NaN` | | ||
| `null` | `0` | | ||
| <code>true / false</code> | `1 / 0` | | ||
| `string` | De tekenreeks wordt gelezen zoals het is, witruimten aan beide zijden worden genegeerd. Een lege tekenreeks wordt `0`. Een fout geeft `NaN`. | | ||
**`Booleaanse Conversie`** -- Gebeurt in logische bewerkingen. Kan worden uitgevoerd met `Boolean(value)`. | ||
Volgt de regels: | ||
| Waarde | Wordt... | | ||
| ------ | -------- | | ||
| `0`, `null`, `undefined`, `NaN`, `""` | `false` | | ||
| elke andere waarde | `true` | | ||
De meeste van deze regels zijn gemakkelijk te begrijpen en te onthouden. De opmerkelijke uitzonderingen waar mensen gewoonlijk fouten maken zijn: | ||
- `undefined` is `NaN` als een getal, niet `0`. | ||
- `"0"` en tekenreeksen met alleen spaties zoals `" "` zijn waar als een boolean. | ||
Objecten wordt hier niet behandeld. We komen er later op terug in het hoofdstuk <info:object-toprimitive> dat uitsluitend aan objecten gewijd is, nadat we meer basisdingen over JavaScript hebben geleerd. |
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.