Home > Web Front-end > JS Tutorial > body text

Why JavaScript is considered a loosely typed language

WBOY
Release: 2023-09-05 10:09:03
forward
936 people have browsed it

为什么 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"
Copy after login

Output

"45"
Copy after login

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>
Copy after login

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)
Copy after login

Example

let myNumber = 1245;
let myString = String(myNumber);
Copy after login

Output

The above code will give the following output -

now myNumber contains "1245"
Copy after login
Copy after login

The syntax of toString() function is as follows -

variableName.toString(base)
Copy after login

Example

let myNumber = 1245;
let myString = toString(myNumber);
Copy after login

Output

The above code will give the following output -

now myNumber contains "1245"
Copy after login
Copy after login

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>
Copy after login

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)
Copy after login

Example

let myString = "567";
let myNumber = Number(myString);
Copy after login

Output

The above code will give the following output -

now myNumber contain 567(Number)
Copy after login

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>
Copy after login

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>
Copy after login

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!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template