相关疑难解决方法(0)

使用命名函数表达式有什么意义?

我正在浏览这篇关于函数声明和函数表达式之间差异的博客.

它给出了这两个例子.他们将第一个称为"匿名函数表达式",将第二个称为"命名函数表达式".

// anonymous function expression
var a = function(){
   return 3;
}

// named function expression
var b = function bar(){
   return 3;
}
Run Code Online (Sandbox Code Playgroud)

我在Chrome的JS控制台中测试了这两个,我看到以下内容:

a()
=> 3

b()
=> 3

bar()
=> bar is not defined
Run Code Online (Sandbox Code Playgroud)

我的问题是:在第二个函数表达式声明中,"bar"的重点是什么?一般来说,为什么要使用命名函数表达式?

javascript function-expression

4
推荐指数
2
解决办法
584
查看次数

我应该用JavaScript挂机吗?

我正在学习JavaScript,我觉得我理解提升得体,所以我不会问它是什么,或者怎么做,或类似的东西.

提升是否好?如果可以,我应该使用声明我的变量

var foo = function() {};
Run Code Online (Sandbox Code Playgroud)

或者我应该使用它吗?

function foo() {}
Run Code Online (Sandbox Code Playgroud)

我什么时候应该提升,什么时候不应该?或者它甚至是否重要?

javascript hoisting hoist

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

Javascript中的命名函数在声明之前可访问,但函数文字不是

我试图弄清楚它是如何工作的.当我引用一个尚未声明的命名Javascript函数时,在某些情况下,它可以工作.但是,如果我使用函数文字,它不会,但它也不会失败ReferenceError.

function works() {
    var works_ref = foo;
    function foo() {
        console.log('ok');
    };
    console.log('works ' + works_ref);
}

function fails() {
    var fails_ref = foo;
    var foo = function() {
        console.log('ok');
    };
    console.log('fails ' + fails_ref);
}

works();
fails();
Run Code Online (Sandbox Code Playgroud)

这回来了

"works function foo() {
            console.log('ok');
        }"
"fails undefined"
Run Code Online (Sandbox Code Playgroud)

我想知道第一个例子是如何工作的 - 这是一个解释语言,没有编译,所以我希望任何类型的前向引用都会失败 - 为什么第二个例子不能生成ReferenceError

javascript function-literal

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

javascript行为 - 函数表达式与函数声明 - 差异

为什么没有为函数创建引用f

if ( function f() { } ) {
    console.log( typeof f );
}
// result: undefined 
Run Code Online (Sandbox Code Playgroud)

分配/设置变量正常工作内if( )

if ( f = 'assigned' ) {
     console.log( typeof f );
}
// result: string
Run Code Online (Sandbox Code Playgroud)

我需要知道在第一种情况下会发生什么,因为第二种情况正如预期的那样工作

有人可以解释一下吗?

javascript

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

为什么在 return 语句后没有提升函数?

const func = () => {
  someFunction() // error here
  
  return function someFunction() {
    console.log('hello')
  }
}

func()
Run Code Online (Sandbox Code Playgroud)

我创建了闭包并想检查func函数内部的提升。每次创建函数声明时,它都会将变量提升到顶部。为什么someFunction不吊?

javascript

4
推荐指数
2
解决办法
73
查看次数

在Javascript中识别重复的函数

是否有可能在Javascript中检测重复的功能(在某些情况下可能会意外写入)?在Google Chrome中,

printLah(); //this prints "Haha" for some reason, without even printing an error message in the Javascript console!
function printLah(){
    alert("Hahah!");
}


function printLah(){
    alert("Haha");
}
Run Code Online (Sandbox Code Playgroud)

这是JSfiddle.

javascript

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

jQuery隐藏和显示表单

我创建了一个链接,当点击弹出窗口并显示"联系表单"时.它可以打开,验证,提交和发送电子邮件.当我尝试关闭表单时,我遇到了问题.

HTML

<div id="blanket"><div id="myForm">
    <p style="text-align:right; margin: 0; padding: 0;"><a href="#" id="close" onClick="onClickClose();">Close</a></p>
    <table width="400" border="0" cellspacing="0" cellpadding="5"><tr><td>
    <form name="form1" method="POST" action="_sendmail.php" onSubmit="return CheckAll(this);">
    <input name="fieldnm_1" type="radio" value="M." /> M. 
    <input name="fieldnm_1" type="radio" value="Mme" /> Mme. 
</td></tr><tr><td width="400">
    <input name="fieldnm_2" type="text" id="left_form" placeholder="Pr&eacute;nom *" tabindex="1"/><input name="fieldnm_4" type="text" id="right_form" placeholder="Courriel *" tabindex="3"/>
</td></tr><tr><td width="400">
    <input name="fieldnm_3" type="text" id="left_form" placeholder="Nom *" tabindex="2"/>
    <input name="fieldnm_5" type="text" id="right_form" placeholder="T&eacute;l&eacute;phone *" tabindex="4"/>
</td></tr><tr><td width="400">
    <select name="fieldnm_7" id="left_list" >
    <option value="">Nombre de chambres *</option>
    <option …
Run Code Online (Sandbox Code Playgroud)

javascript forms jquery hide

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

Javascript删除机制

可能重复:
javascript中的delete运算符

我有以下代码.我不明白为什么第二次删除失败.

另外,我注意到foo函数即使在我为foo分配了其他内容之后仍然存在.

有没有办法参考这个功能?
(假设我想要一个bar2=foo()bar任务一样的行为).

> function foo(){var bar=0; return function(){return bar++;}}
undefined
> bar = foo()
function () {return bar++;}
> bar()
0
> bar()
1
> delete bar
true
> foo = foo()
function () {return bar++;}
> foo()
0
> foo()
1
> delete foo
false
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript

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

初学者Javascript:'function xyz(){}'和'var xyz = function(){}'之间有什么区别?

可能重复:
JavaScript:var functionName = function(){} vs function functionName(){}

我一直在阅读CodeAcademy的Javascript课程,但有些事情已经过去了.我理解函数是如何工作的,我试图围绕OOP和对象/方法.

我的问题是,创建这样的函数有什么区别:

function countTo(number){
    for (var i=1; i<=number; i++){
        console.log(i);
    }
}

countTo(15);
Run Code Online (Sandbox Code Playgroud)

并创建一个这样的函数:

var countToTwo = function(number){
    for (var i=1; i<=number; i++){
        console.log(i);
    }
};

countToTwo(27);
Run Code Online (Sandbox Code Playgroud)

两者都做同样的事情,并具有相同的输出.它们完全相同/可互换吗?在创建函数时使用哪一个是否重要?

javascript

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

缺少分号时Javascript未定义类函数

function Foo() {
    var that = this;
    that.bar = function() {}
    that.baz = function() {}

    (function() {
        that.baz();
    }());
}
new Foo;
Run Code Online (Sandbox Code Playgroud)

Uncaught TypeError: Object #<Foo> has no method 'baz'

that.bar工作正常,它只是最后一个不存在的功能.;baz函数定义之后添加一个修复所有内容.

我知道排除;可以弄乱一些事情,但我认为你肯定不应该放弃;功能.没有语言可以做到.为什么;baz函数之后排除导致此错误?我应该;在我的功能定义之后吗?

javascript

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