小编Aad*_*rma的帖子

JavaScript 中的“类字段”是什么?

我正在阅读有关 JavaScript 类的内容,并遇到了“公共类字段语法”这个术语。在深入研究它时,我遇到了这个Babel 关于类属性的文档

有人可以解释一下 - 在实现方面,这种新语法的用例是什么? (它为 JavaScript 提供了哪些解决方案/好处,哪些是迄今为止缺失的?)

下面是一个例子(在谷歌浏览器中运行没有错误)

class Person {
    firstName = "Mike";
    lastName = "Patel";
    
    // this is a public class field syntax
    getName = () => {
      return this.firstName + " " + this.lastName;
    };
}

var p = new Person();

console.log(p.firstName); // Mike
console.log(p.lastName); // Patel
console.log(p.getName); // () => { return this.firstName + " " + this.lastName; }
console.log(typeof p.getName); // function
console.log(p.getName()); // Mike …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 ecmascript-next class-fields

5
推荐指数
2
解决办法
7662
查看次数

为什么在JavaScript中修改super.method()失败?

我尝试通过将其作为的属性进行访问来修改父类的方法super。这里有两个问题:

  1. 为什么修改super.getTaskCount没有更新父类中引用的方法?
  2. 为什么JavaScript在修改时没有给出任何错误super.getTaskCount?代码执行过程中到底发生了什么?

让我们来看一个例子:

// Parent Class
class Project {
  getTaskCount() {
    return 50;
  }
}

// Child class
class SoftwareProject extends Project {
  getTaskCount() {
    // Let's try to modify "getTaskCount" method of parent class
    super.getTaskCount = function() {
      return 90;
    };
    return super.getTaskCount() + 6;
  }
}

let p = new SoftwareProject();
console.log(p.getTaskCount()); // prints 56. Why not 96?
// Why did super.getTaskCount method remain unchanged?
Run Code Online (Sandbox Code Playgroud)

PS:我知道我们可以在这种情况下使用getter和setter方法,但是我正在尝试了解更多信息super,它是正确的用法和局限性。

javascript ecmascript-6 es6-class

3
推荐指数
1
解决办法
126
查看次数

在 JavaScript 中使用“<”和“>”运算符比较两个字符串

当比较运算符的输入作为两个字符串值给出时,比较运算符><返回值。Boolean

我尝试了几个例子:

/* String vs String */
console.log('firstName' < 'lastname'); // true
console.log('firstName' < 'Firstname'); // false
console.log('!firstName' < 'lastname'); // true
console.log('!firstName' < 'Firstname'); // true
console.log('!firstName' < '!Firstname'); // false
console.log('!firstName' < '_!Firstname'); // true
console.log('@!firstName' < '_!Firstname'); // true
console.log('@!firstName' < '2_!Firstname'); // false

/* String vs Number */
console.log('@!firstName' < 2); // false
console.log('@!firstName' < -1); // false

/* String vs Special Numbers */
console.log('@!firstName' < Infinity); // false
console.log('@!firstName' < …
Run Code Online (Sandbox Code Playgroud)

javascript arrays string

3
推荐指数
1
解决办法
6209
查看次数

How to loop a function indefinitely (instead of using conventional for-loop)

I've got a code that will run a set of 20 images, to make it look like an idle sprite is breathing when idle. This runs perfect when its only one loop.

However I can't get it to repeat that loop indefinitely.

Is there a cleaner and faster way to do what i'm doing?

Enclosing that in another for loop doesn't work. It ends in it never loading.

for(let i = 0; i < images.length; i++) {
    window.setTimeout(function () { …
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
68
查看次数

类可以在不实现 AutoCloseable 接口的情况下支持 try-with-resources 吗?

我发现try-with-resources可用于任何实现该AutoCloseable接口的类。

public interface AutoCloseable {
  void close() throws Exception;
}
Run Code Online (Sandbox Code Playgroud)

这是类在 Java 中支持try-with-resources的唯一标准吗(我的意思是,是否存在类实现AutoCloseable接口但支持try-with-resources 的可能场景)?

java

0
推荐指数
1
解决办法
642
查看次数

如何检查JavaScript中“ typeof”的类型?

我正在尝试检查typeofJavaScript 的类型。为了在我尝试以下方法时进行务实的检查,它给出了SyntaxError

范例1:

typeof typeof // SyntaxError
Run Code Online (Sandbox Code Playgroud)

例子2

function checkType(x) {
    return typeof x;
};
checkType(typeof); // SyntaxError
Run Code Online (Sandbox Code Playgroud)

因此,我在这里有两个问题:

  1. typeofJavaScript中的类型是什么?
  2. 我们可以编写一个函数来检索它的类型吗?

编辑(以解释此问题的目的/好奇心):

我很好奇我们是否可以typeof在代码(或开发者控制台)中看到此类运算符的实现(如)。例如,以一种我可以查看/打印内置函数的函数定义的方式,我只是想知道是否可以通过任何方式来挖掘更多信息并获取有关诸如此类的运算符的信息typeof。在查看它们的用法时,对我而言,此类运算符看起来类似于内置函数,后者需要输入并返回输出。

javascript

-3
推荐指数
1
解决办法
66
查看次数