【问题标题】:How to add a variable of the same type in javascript?如何在javascript中添加相同类型的变量?
【发布时间】:2019-01-27 00:44:30
【问题描述】:

我正在制作一个带有节点的简单列表,并且我想将相同类型的属性添加到类中。当我用 Java 编程时,我是这样做的:

public class Node {

   public  char date;
   public Node next; 

   public Node(char date) 
   {
       this.date = date;
   }
}

但是,在 javascript 中它只允许我使用 var 变量。如何创建我想要的相同类型类的变量?

我仍然专注于 cmets...

【问题讨论】:

  • javascript 中没有类和类型。你的 var 可以是任何东西,它没有类型。只是一个值。
  • js 的类型很松散。没有这样的事。您可以使用 typescript,它支持类型化变量。请注意,您应该使用letconst 而不是var
  • 阅读闭包

标签: javascript java class


【解决方案1】:

尽管 JavaScript 是面向对象的语言,但从历史上看,它不是 class-based language,而是 prototype-based language。这两种方法之间存在细微差别。

尽管如此,2015 年的 ECMA 脚本 6 中引入了类。现在像 Java 等任何其他基于类的语言一样使用类是正确的

更多:Does JavaScript have classes?

你也有其他选择,使用像 typescript 这样的强类型语言并将其转换为 Javascript

【讨论】:

    【解决方案2】:

    在 Javascript 中,类型是“推断的” 这是一个例子

    class Node {
       constructor(date) {
         this.date = date
       }
    }
    var foo = new Node(new Date());
    // foo instanceof Node => true
    

    【讨论】:

      【解决方案3】:

      在Javascript中,您可以使用var(这样声明的变量可以重新声明和重新赋值)、let(这样声明的变量不能重新声明但可以重新赋值)或const(变量像这样声明的不能重新声明或重新赋值)来定义变量。你不能声明变量的类型——只能声明它的值(可以是任何类型),因为 Javascript 是一种无类型语言。

      如果您想为函数强制指定特定参数的类型,可以使用typeof 检查所提供参数的类型,如果类型不正确则抛出错误。

      function add(num1, num2){
        if(typeof num1!=="number"||typeof num2!=="number"){
          throw new TypeError("You must provide numbers!");
        }
        return num1+num2;
      }
      console.log(add(1,2));
      add("string", {});

      如果您想使用类型化变量,请考虑使用 Typescript。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-18
        • 1970-01-01
        • 1970-01-01
        • 2014-07-27
        • 1970-01-01
        • 2021-08-22
        相关资源
        最近更新 更多