相关疑难解决方法(0)

JavaScript闭包如何工作?

您如何向知道其所包含概念的人(例如函数,变量等)解释JavaScript闭包,但不了解闭包本身?

我已经看过维基百科上给出的Scheme示例,但遗憾的是它并没有帮助.

javascript variables closures scope function

7644
推荐指数
82
解决办法
139万
查看次数

是否在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万
查看次数

Javascript本地和全局变量混淆

我是JavaScript的新手,我在本地和全局变量作用域上做了一些练习,以下是我的代码(小提琴):

var myname = "initial"
function c(){
    alert(myname);
    var myname = "changed";
    alert(myname);
}
c();
Run Code Online (Sandbox Code Playgroud)

当第一个警报被调用时,它显示myname为未定义.所以我的困惑是为什么我无法访问全局实例,myname如果我没有myname在函数中定义,那么它将正常工作.

javascript

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

为什么JavaScript提升变量?

为什么JavaScript提升变量?

设计师决定实施吊装时的理由是什么?还有其他流行语言吗?

请提供文档和/或记录的相关链接.

javascript hoisting

77
推荐指数
2
解决办法
6760
查看次数

使用javascript进行字符串连接

我正在尝试以下列方式构建HTML字符串:

htmlString = '<html>';
var headerString = "image1";
var sImage = "Android_images/"+headerString+".png";
htmlString += '<img src='+sImage+' />';
htmlString = '</html>';
Run Code Online (Sandbox Code Playgroud)

我需要动态附加图像字符串,但它显示:

<img src=Android_images/dfdfd.png />
Run Code Online (Sandbox Code Playgroud)

html javascript

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

为什么单个var在javascript中很好?

任何人都可以告诉我为什么对多个变量使用一个var声明并在换行符上声明每个变量是否是一个很好的编程行为?

// bad
var items = getItems();
var goSportsTeam = true;
var dragonball = 'z';

// good
var items = getItems(),
    goSportsTeam = true,
    dragonball = 'z';
Run Code Online (Sandbox Code Playgroud)

javascript

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

为什么for循环计数器在javascript中退出循环后不会被破坏?

for(var i=0;i<5;i++){}
alert(i);
Run Code Online (Sandbox Code Playgroud)

在javascript中,这将使我们获得其他5种语言,如C++,java,c#....只会给出一个错误,即i变量未在上下文中定义.

那么为什么for循环计数器在javascript中退出循环后不会被破坏?

javascript

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

javascript中的'in'关键字是什么意思?

我找到了这段代码:

if (!("aa" in window)) {  
    alert('oh my god');
    var aa = 1;  
}  
alert("aa" in window);
alert(aa);
Run Code Online (Sandbox Code Playgroud)

此代码第二个警报是警报true,但是,第三个警报是"未定义",并且"if"中的警报未运行.为什么?

我认为原因是in; 它的作用是什么?

我在谷歌上搜索过,但一无所获,因为谷歌认为"在&srquo; 是一个过滤词.

我们总是使用inin循环,但是,坦率地说,我使用它但是并不真正理解它.

javascript

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

为什么这个 JavaScript 函数的输出是 10?

检查这个小提琴或下面的代码,告诉我为什么这个脚本的输出是10

var foo = 1;
function bar() {
    if (!foo) {
        var foo = 10;
    }
    alert(foo);
}
bar();
Run Code Online (Sandbox Code Playgroud)

javascript

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

在JavaScript中,在未附加到DOM树的函数内创建的节点是否会使空间混乱?

我习惯于在顶部块中声明范围中的每个变量以获得代码可读性.我怀疑函数范围内未添加到文档正文的节点会使空间混乱,并降低性能.他们会怎么样?一般而言,在函数范围内创建的变量会发生什么?执行功能后它们会被销毁吗?我是否需要担心释放内存?在一个范围的最顶层块声明变量是一个好习惯,还是只在需要时或在某些条件为真时才在现场声明变量?这有助于提高运行时性能吗?

假设这样的函数:

function myfunc() {
    var someNode = document.createElement('div');
    if(someCondition) { // add the node only if some condition is true
        document.body.appendChild(someNode);
    }
Run Code Online (Sandbox Code Playgroud)

VS这样的功能:

function myfunc() {
    if(someCondition) { // create and add the node only if some condition is true
        var someNode = document.createElement('div');
        document.body.appendChild(someNode);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript dom scope memory-management nodes

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

为什么我应该使用块范围而不是函数范围?

功能范围对我来说非常好,已有20年了.现在我到处读,我应该使用letconst不是var.我想这主要是因为它是一个新功能.为什么我更喜欢块范围?

javascript ecmascript-6

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