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)注意:从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中,你想什么时候使用它:
(function(){
//Bunch of code...
})();
Run Code Online (Sandbox Code Playgroud)
对此:
//Bunch of code...
Run Code Online (Sandbox Code Playgroud) 我有一个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) 我已经玩ES6一段时间了,我注意到虽然声明的变量var按预期提升了......
console.log(typeof name); // undefined
var name = "John";
Run Code Online (Sandbox Code Playgroud)
... 用吊装声明let或const似乎有一些问题的变量:
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?这是怎么回事?这个问题let和const这个问题有什么区别吗?
我听说在初始化之前访问let和const值可能会导致ReferenceError因为称为时间死区的东西.
什么是暂时死区,它与范围和吊装有什么关系,以及在什么情况下遇到?
我知道PHP中可能有"变量"变量.例如
$x = "variable";
$$x = "hello, world!";
echo $variable; // displays "hello, world!"
Run Code Online (Sandbox Code Playgroud)
是否可以在javascript中将变量的名称引用为字符串?怎么做?
这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.
Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.
主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.
此外,这是PHP符号引用的公然副本.我们需要一个JS.
请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接
全新的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,检查它是否为空,如果它为空则抛出错误信息?
我收到错误:
ReferenceError: Cannot access 'myMock' before initialization
我正在这样做:
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 ×10
closures ×2
const ×2
ecmascript-6 ×2
let ×2
cookies ×1
ecmascript-5 ×1
hoisting ×1
html ×1
iife ×1
jestjs ×1
jquery ×1
keyword ×1
loops ×1
node.js ×1
typescript ×1
unit-testing ×1
variables ×1