Home  >  Article  >  Web Front-end  >  Why JavaScript is considered a loosely typed language

Why JavaScript is considered a loosely typed language

WBOY
WBOYforward
2023-09-05 10:09:03937browse

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

Since JavaScript is a loosely typed language, you don't need to correctly predict data types This will be saved in a variable. Depending on the information you provide to the variable (e.g. this ‘‘ or "" for a string value), JavaScript will automatically type it. The type of the variable, such as int, float, boolean, or String must be declared in many other languages, including Java.

This has both good and bad effects. Although the type system in JavaScript allows many Free, it lacks the power of a highly typed system that will yell at you every time you try to add an int to an object, saving you from spending hours debugging type errors.

JavaScript types are temporary. The function does not need to accept integers as arguments, nor does it need Need to make it clear that a string is a string? JavaScript now has a lot of versatility.

In exchange for more security and trust in the code base, you have to give up part of it The flexibility that comes with loosely typed languages.

Although the operator usually converts the value to the appropriate type according to JavaScript Loosely coupled type system, in some cases we have to perform type conversions direct.

Although there are many ways to convert data between different types in JavaScript, there are two Most commonly done things -

  • Convert value to string
  • Convert value to number

Implicit conversion - There are many JavaScript operators and functions that can automatically Convert the value to the appropriate type, such as the alert() function, which accepts any value and converts to a string. However, some operators, such as the " " operator, can cause problems.

Basic example

enter

"4" + "5"

Output

"45"

In this example, the operator represents string concatenation.

But "5"-"3" gives output 2 by using implicit conversion.

Example 1

The following script explains how JavaScript performs implicit type conversions.

<!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 of value to string

You can use the toString() or string() function to convert a value in JavaScript to a string.

The syntax of the String() function is as follows -

String(value)

Example

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

Output

The above code will give the following output -

now myNumber contains "1245"

The syntax of toString() function is as follows -

variableName.toString(base)

Example

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

Output

The above code will give the following output -

now myNumber contains "1245"

Example 2

Numbers, Boolean values, and dates will all be converted to strings using the code below.

<!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>

Change value to number

You can use JavaScript's Number() method to convert a value to a number. it has the ability Convert any numeric literal and boolean value to a number. When processing strings non-number, it will turn them into NaN (not a number).

grammar

Number(valueToConvert)

Example

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

Output

The above code will give the following output -

now myNumber contain 567(Number)

Example 3

Use the code below to convert numeric literals, dates and booleans all to numbers.

<!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>

Example 4

If the string is not a number, it is converted to NaN, and an empty or blank string is converted to NaN to 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>

The above is the detailed content of Why JavaScript is considered a loosely typed language. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete