相关疑难解决方法(0)

循环内的JavaScript闭包 - 简单实用的例子

var funcs = [];
// let's create 3 functions
for (var i = 0; i < 3; i++) {
  // and store them in funcs
  funcs[i] = function() {
    // each should log its value.
    console.log("My value: " + i);
  };
}
for (var j = 0; j < 3; j++) {
  // and now let's run each one to see
  funcs[j]();
}
Run Code Online (Sandbox Code Playgroud)

它输出这个:

我的价值:3
我的价值:3
我的价值:3

而我希望它输出:

我的价值:0
我的价值:1
我的价值:2


使用事件侦听器导致运行函数的延迟时,会出现同样的问题:

var buttons = document.getElementsByTagName("button");
// let's create 3 …
Run Code Online (Sandbox Code Playgroud)

javascript closures loops

2689
推荐指数
25
解决办法
34万
查看次数

var关键字的目的是什么?我何时应该使用它(或省略它)?

注意:从ECMAScript版本3或5的角度提出了这个问题.在ECMAScript 6发布中引入新功能后,答案可能会过时.

varJavaScript中关键字的功能到底是什么,有什么区别

var someNumber = 2;
var someFunction = function() { doSomething; }
var someObject = { }
var someObject.someProperty = 5;
Run Code Online (Sandbox Code Playgroud)

someNumber = 2;
someFunction = function() { doSomething; }
someObject = { }
someObject.someProperty = 5;
Run Code Online (Sandbox Code Playgroud)

你什么时候使用其中任何一个,为什么/它做什么?

javascript keyword ecmascript-5

1508
推荐指数
15
解决办法
30万
查看次数

406
推荐指数
9
解决办法
12万
查看次数

按名称获取cookie

我有一个getter来从cookie中获取值.

现在我有两个名字shares=和名字的饼干obligations=.

我想让这个getter只是为了从义务cookie中获取值.

我该怎么做呢?因此,for将数据拆分为单独的值并将其放入数组中.

 function getCookie1() {
    // What do I have to add here to look only in the "obligations=" cookie? 
    // Because now it searches all the cookies.

    var elements = document.cookie.split('=');
    var obligations= elements[1].split('%');
    for (var i = 0; i < obligations.length - 1; i++) {
        var tmp = obligations[i].split('$');
        addProduct1(tmp[0], tmp[1], tmp[2], tmp[3]);
    }
 }
Run Code Online (Sandbox Code Playgroud)

javascript cookies

337
推荐指数
22
解决办法
59万
查看次数

是否在ES6中使用let或const声明变量?

我已经玩ES6一段时间了,我注意到虽然声明的变量var按预期提升了......

console.log(typeof name); // undefined
var name = "John";
Run Code Online (Sandbox Code Playgroud)

... 用吊装声明letconst似乎有一些问题的变量:

console.log(typeof name); // ReferenceError
let name = "John";
Run Code Online (Sandbox Code Playgroud)

console.log(typeof name); // ReferenceError
const name = "John";
Run Code Online (Sandbox Code Playgroud)

这是否意味着变量声明let或未声明const?这是怎么回事?这个问题letconst这个问题有什么区别吗?

javascript const let hoisting ecmascript-6

240
推荐指数
5
解决办法
5万
查看次数

什么是暂时死区?

我听说在初始化之前访问letconst值可能会导致ReferenceError因为称为时间死区的东西.

什么是暂时死区,它与范围和吊装有什么关系,以及在什么情况下遇到?

javascript const let ecmascript-6

128
推荐指数
3
解决办法
2万
查看次数

Javascript中的"变量"变量?

我知道PHP中可能有"变量"变量.例如

$x = "variable";
$$x = "hello, world!";
echo $variable; // displays "hello, world!"
Run Code Online (Sandbox Code Playgroud)

是否可以在javascript中将变量的名称引用为字符串?怎么做?

javascript variables variable-variables

93
推荐指数
4
解决办法
7万
查看次数

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

这是什么?

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

为什么是这样?

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

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

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


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

javascript

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

如何在jQuery中检查输入文件是否为空

全新的JS.
我在尝试使用jQuery/JavaScript提交表单时检查文件输入元素是否为空.我已经经历了一系列解决方案,没有什么对我有用.我试图避免/c/fakepath(除非没有其他选择)

<input type="file" name="videoFile" id="videoUploadFile" />
Run Code Online (Sandbox Code Playgroud)

这不起作用:

var vidFile = $("#videoUploadFile").value;
Run Code Online (Sandbox Code Playgroud)

我可以获取文件名的唯一方法是使用以下内容:

var vidFile = document.getElementById("videoUploadFile").files[0].name;
Run Code Online (Sandbox Code Playgroud)

如果没有可用文件,则代码会抛出错误:

无法读取undefined的属性名称

这是有道理的,因为没有设置数组.但我无法弄清楚如何使用它进行任何错误处理.

如何正确获取文件输入元素videoUploadFile,检查它是否为空,如果它为空则抛出错误信息?

html javascript jquery

86
推荐指数
5
解决办法
17万
查看次数

开玩笑 ReferenceError:初始化前无法访问 ''

我收到错误:

ReferenceError: Cannot access 'myMock' before initialization

尽管我尊重有关提升的笑话文档: A limitation with the factory parameter is that, since calls to jest.mock() are hoisted to the top of the file, it's not possible to first define a variable and then use it in the factory. An exception is made for variables that start with the word 'mock'.

我正在这样做:

import MyClass from './my_class';
import * as anotherClass from './another_class';

const mockMethod1 = jest.fn();
const mockMethod2 = jest.fn();
jest.mock('./my_class', () => {
  return { …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing node.js typescript jestjs

76
推荐指数
6
解决办法
10万
查看次数