【问题标题】:How to determine operator placement如何确定操作员的位置
【发布时间】:2019-06-17 13:19:39
【问题描述】:

我对运算符的位置感到困惑: 给定:

var a = [0, 1, 2];

据我所知,以下每一项都是正确的:

var len = a.length;
var lastElt = a.pop();
var str = String(a);
var typeStr = typeof a;

有没有一种简单的方法来记住/思考运算符是在操作数之前还是之后,以及它是否需要括号?还是只是死记硬背?

谢谢。

【问题讨论】:

  • 不清楚您对什么感到困惑。这里的“操作员”是什么意思?在学习一门编程语言时,确实有很多东西需要你记住。
  • 那些大多不是运营商。
  • 你需要学习这个。基本上运算符没有括号,函数/方法有括号。如果与 parameter/s 一起使用,则类有一个。
  • 属性、方法、全局对象、运算符
  • 感谢所有及时回复。

标签: javascript methods properties placement


【解决方案1】:

感谢所有及时回复。回答“这里的“操作员”是什么意思?”这个问题。我来自数学和(最近)c 编程背景。通过“运算符”,我想抽象地谈论任何将其参数映射到有用的东西,使用它来包含方法、属性等,而不列举它们。我试图抽象这些可能是我困惑的根源。我现在明白需要的是死记硬背,就像拉丁语中的变格;-)。

【讨论】:

    【解决方案2】:

    您的列表大多包含运算符:

    • length 是属于 Array 对象的 property。它返回 Array 中的项目数。
    • pop() 是属于 Array 对象的 method。它从Array 中删除最后一项并重新调整它。
    • String() 是一个全局对象,它是 constructorString 对象。它将任何对象作为参数并将其转换为String
    • typeof 操作员。它返回一个字符串,指示后续操作数的类型。

    更多参考,这里有一些关于JavaScript operators的信息。

    我强烈建议您在 Google 上搜索一些 JavaScript 入门教程,以便您学习基本概念。

    【讨论】:

      【解决方案3】:

      我们走吧:

      案例#1

      var len = a.length;

      在这种情况下,您将调用数组存储在变量a 中的方法lenght

      案例#2

      var lastElt = a.pop();

      和以前一样,这里调用数组的方法pop

      案例#3

      var str = String(a);

      你没有调用任何数组的方法。在这里,您正在投射数组。即您正在对数组进行字符串化。

      案例#4

      var typeStr = typeof a;

      这里你也没有调用任何数组的方法。您正在调用窗口对象的typeof 方法并将数组a 作为参数传递。

      如您所见。在前两种情况下,您正在调用数组的方法。在最后两种情况下,您正在调用窗口对象的方法并将数组作为参数传递。

      【讨论】:

      • length 是一个属性,而不是一个方法。方法需要括号。
      • 良好的观察@NinaScholz。谢谢。
      • typeof 是一元运算符。
      【解决方案4】:

      运算符指的是+、=*、/等

      我认为没有一种简单的方法可以记住。如果它是“属性”,则不会有括号。如果是函数,会有括号。我一直记得长度是数组的一个属性,而 push 和 pop 是您可以对数组执行的操作。类型转换始终以大写的“类型”开头,然后是括号中您想要转换的内容。 typeof 只是一个奇怪的类型。

      【讨论】:

        猜你喜欢
        • 2012-02-11
        • 1970-01-01
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多