相关疑难解决方法(0)

这个符号在JavaScript中意味着什么?

这是什么?

这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.

为什么是这样?

Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.

主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.

此外,这是PHP符号引用的公然副本.我们需要一个JS.


请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接

javascript

86
推荐指数
1
解决办法
14万
查看次数

如何在JavaScript中为自定义对象创建方法?

是不是......

var obj = new Object();

obj.function1 = function(){
    //code
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西?

javascript methods object

50
推荐指数
3
解决办法
7万
查看次数

在对象声明中属性名后没有冒号,它有效吗?

我在Firefox和Chrome Dev Console中输入了这个表达式,我想知道为什么它是有效的JavaScript:

var x = { a (b) {} };
console.log(x);
Run Code Online (Sandbox Code Playgroud)

x然后将其设置为具有属性"a"的对象,该属性包含具有参数标识符"b"的名为"a"的函数.这个有效的JavaScript语法怎么样?"a"后冒号丢失,我不理解函数定义.

javascript

21
推荐指数
2
解决办法
2041
查看次数

ECMA6中nameFunction(){}和nameFunction()=> {}之间的区别

我开始学习Vue.js和ECMA6语法,我在教程中看到了这一点:

methods: {
  someMethod: function() { 
    console.log(this) // this works
  }
} 
Run Code Online (Sandbox Code Playgroud)

然后我认为语法可能是:

methods: {
  someMethod: () => {
    console.log(this) // this undefined
  }
}
Run Code Online (Sandbox Code Playgroud)

但这有效:

methods: {
  someMethod () {
    console.log(this) // this works
  }
}
Run Code Online (Sandbox Code Playgroud)

可以解释差异和ECMA5的语法吗?

javascript ecmascript-6 vue.js

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

构造函数使用ES6简写表示法表现不同

ES6引入了一种简写符号来初始化具有函数和属性的对象.

// ES6 shorthand notation
const obj1 = {
    a(b) {
        console.log("ES6: obj1");
    }
};

// ES5
var obj2 = {
    a: function a(b) {
        console.log("ES5: obj2");
    }
};

obj2.a();
obj1.a();

new obj2.a();
new obj1.a();
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,这些不同的符号表现不同.如果我new obj1.a()在浏览器中(测试过的Chrome和Firefox),我会得到一个TypeError: obj1.a is not a constructor.new obj2.a()表现完全正常.

这里发生了什么?有没有人有解释,和/或文档/规范的链接?

javascript methods shorthand ecmascript-6

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

为什么这段代码在javascript中运行?对象内部的函数

当我在javascript控制台中键入此代码时,这不是通过错误,而是运行.

var a = { 
  b:"123",
  update(){
     console.log("hello");
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,update()没有函数关键字,当我检查对象的属性时a,我得到:

b: "123"
update: function ()
__proto__: Object
Run Code Online (Sandbox Code Playgroud)

什么是javascript实际上在这里做?

javascript function object ecmascript-6

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

在变量中声明函数的不同方法

我很好奇以下两种在Javascript中声明变量函数的方法.下面两个函数声明之间的区别是什么?两者似乎都有效.使用一个比另一个有任何缺点吗?在查看调试器时,它们的构造似乎略有不同.

另外,我相当肯定第一种方法被称为"对象文字符号".第二种方法有正式名称吗?

var myVar = {
    testProperty: 'testProperty',

    // Object literal notation?
    testFunc: function()
    {
        console.log('testFunc called');
    },

    // What's this called? 'Named function declaration'?
    testFunc2()
    {
        console.log('testFunc2 called');
    }
}

// Both work...
myVar.testFunc();
myVar.testFunc2();
Run Code Online (Sandbox Code Playgroud)

javascript

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

在 JavaScript 对象中定义函数的简写

不小心写了如下代码,

var x = {hai:10,test(){ alert("I am alive")}};
x.test(); //alerting the value
Run Code Online (Sandbox Code Playgroud)

它工作正常,我想知道这段代码是如何工作的?因为它以前被认为是无效的语法。而且我知道,在 中ECMAscript 6,已经引入了分配属性的简写。

例子:

var x = 5, y = {x};  // is as same as var x=5,y={x:x};
Run Code Online (Sandbox Code Playgroud)

但我不确定函数定义。任何人都可以用文档中的证据来解释它吗?

javascript

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