Maison  >  Article  >  interface Web  >  Pourquoi JavaScript est considéré comme un langage peu typé

Pourquoi JavaScript est considéré comme un langage peu typé

WBOY
WBOYavant
2023-09-05 10:09:03915parcourir

为什么 JavaScript 被认为是松散类型语言

Étant donné que JavaScript est un langage faiblement typé, vous n'avez pas besoin de prédire correctement les types de données Celui-ci sera enregistré dans une variable. En fonction des informations que vous fournissez à la variable (par exemple ce « » ou "" pour une valeur de chaîne), JavaScript la saisira automatiquement. Le type de la variable, tel que int, float, boolean ou String doivent être déclarés dans de nombreux autres langages, dont Java.

Cela a à la fois des bons et des mauvais effets. Bien que le système de types en JavaScript permette de nombreux Gratuit, il lui manque la puissance d'un système hautement typé qui vous criera dessus à chaque fois que vous tenterez d'ajouter un int à un objet, vous évitant ainsi de passer des heures à déboguer des erreurs de type.

Les types JavaScript sont temporaires. La fonction n'a pas besoin d'accepter des entiers comme paramètres, ni Besoin de préciser qu'une chaîne est une chaîne ? JavaScript a désormais beaucoup de polyvalence.

En échange de plus de sécurité et de confiance dans la base de code, vous devez renoncer à certains La flexibilité offerte par les langages peu typés.

Bien que les opérateurs convertissent généralement les valeurs en types appropriés selon JavaScript Système de types faiblement couplé, dans certains cas, nous devons effectuer des conversions de types direct.

Bien qu'il existe de nombreuses façons de convertir des données entre différents types en JavaScript, il en existe deux Choses les plus courantes -

  • Convertir la valeur en chaîne
  • Convertir la valeur en nombre

Conversions implicites - Il existe de nombreux opérateurs et fonctions JavaScript qui peuvent automatiquement Convertissez la valeur dans le type approprié, tel que la fonction alert(), qui accepte n'importe quelle valeur et convertit à une chaîne. Cependant, certains opérateurs, comme l'opérateur « + », peuvent poser des problèmes.

Exemple de base

Entrez

"4" + "5"

Sortie

"45"

Dans ce cas, l'opérateur + représente la concaténation de chaînes.

Mais "5" - "3" donne la sortie 2 en utilisant une conversion implicite.

Exemple 1

Le script suivant explique comment JavaScript effectue des conversions de type implicites.

<!DOCTYPE html>
<html>
<title>Why is JavaScript considered a loosely-typed language - TutorialsPoint</title>
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="text-align:center">
   <script>
      document.write('("5" - "3") = ' + ("5" - "3") + "<br>");
      document.write('("5" - 3) = ' + ("5" - 3) + "<br>");
      document.write('("5" * "2") = ' + ("5" * "2") + "<br>");
      document.write('("5" % "2") = ' + ("5" % "2") + "<br>");
      document.write('("5" + null) = ' + ("5" + null) + "<br>");
   </script>
</body>
</html>

Conversion de valeur en chaîne

Vous pouvez convertir une valeur en JavaScript en chaîne à l'aide de la fonction toString() ou string().

La syntaxe de la fonction

String() est la suivante -

String(value)

Exemple

let myNumber = 1245;
let myString = String(myNumber);

Sortie

Le code ci-dessus donnera le résultat suivant -

now myNumber contains "1245"
La syntaxe de la fonction

toString() est la suivante -

variableName.toString(base)

Exemple

let myNumber = 1245;
let myString = toString(myNumber);

Sortie

Le code ci-dessus donnera le résultat suivant -

now myNumber contains "1245"

Exemple 2

Les nombres, les booléens et les dates seront tous convertis en chaînes à l'aide du code ci-dessous.

<!DOCTYPE html>
<html>
<title>Why is JavaScript considered a loosely-typed language - TutorialsPoint</title>
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="text-align:center">
   <script>
      
      // The variables myNumber and myDay have been
      // given the values number and date, respectively.
      let myNumber = 155;
      let myDay = new Date('2022-10-31T06:30:00');
      
      // Number to string conversion
      document.write(" String(myNumber) = " + String(myNumber) + "<br>");
      
      // number to string conversion
      document.write(" String(myNumber + 15) = " + String(myNumber + 15) + "<br>");
      document.write(" String( 20 + 20) = " + String(20 + 20) + "<br>");
      
      // from boolean value to string conversion
      document.write(" String(false) = " + String(false) + "<br>");
      
      // From Date to string conversion
      document.write(" String(myDay) = " + String(myDay) + "<br>");
   </script>
</body>
</html>

Changer la valeur en nombre

Vous pouvez utiliser la méthode Number() de JavaScript pour convertir une valeur en nombre. il a la capacité Convertissez n’importe quelle valeur numérique littérale et booléenne en nombre. Lors du traitement des chaînes non-numéro, cela les transformera en NaN (pas un nombre).

Grammaire

Number(valueToConvert)

Exemple

let myString = "567";
let myNumber = Number(myString);

Sortie

Le code ci-dessus donnera le résultat suivant -

now myNumber contain 567(Number)

Exemple 3

Utilisez le code ci-dessous pour convertir le texte numérique, les dates et les valeurs booléennes en nombres.

<!DOCTYPE html>
<html>
<title>Why is JavaScript considered a loosely-typed language - TutorialsPoint</title>
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="text-align:center">
   <script>
      
      // Variables myNumber and myDay, respectively,
      // have been given the values number and date.
      let myNumber = "567";
      let myDay = new Date('2022-10-31T06:30:00');
      
      // string to number conversion
      document.write(" Number(myNumber) = " + Number(myNumber) + "<br>");
      
      //A boolean value is converted to a number.
      document.write(" Number(false) = " + Number(false) + "<br>");
      document.write(" Number(true) = " + Number(true) + "<br>");
      
      // Change from date to number
      document.write(" Number(myDay) = " + Number(myDay) + "<br>");
   </script>
</body>
</html>

Exemple 4

Si la chaîne n'est pas un nombre, elle est convertie en NaN, tandis qu'une chaîne vide ou vide est convertie en NaN à 0.

<!DOCTYPE html>
<html>
<title>Why is JavaScript considered a loosely-typed language - TutorialsPoint</title>
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="text-align:center">
   <script>
      
      // Empty string assigned
      let emptyStr = "";
      
      // White space assigned
      let whiteSpc = " ";
      
      // Non-number string assigned
      let nonStr = "Welcome to Tutorialspoint!";
      
      // Printing converted values of number
      document.write(" Number(emptyStr) = " + Number(emptyStr) + "<br>");
      document.write(" Number(whiteSpc) = " + Number(whiteSpc) + "<br>");
      document.write(" Number(nonStr) = " + Number(nonStr) + "<br>");
   </script>
</body>
</html>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer