当以下列方式声明javascript函数时,这意味着什么:
JSON.stringify = JSON.stringify || function (obj)
{
//stuff
};
Run Code Online (Sandbox Code Playgroud)
以上如何区别于下面的声明?
function stringify(obj)
{
//stuff
}
Run Code Online (Sandbox Code Playgroud) 可能的重复:
JavaScript: var functionName = function() {} vs function functionName() {}
Javascript 中的函数表达式与声明之间有什么区别?
我试图了解 javascript 的“最佳实践”。
此代码来自jqfundementals.com
// create a function that will greet a person,
// and assign the function to the `greet` variable
var greet = function( person, message ) {
var greeting = 'Hello, ' + person + '!';
log( greeting + ' ' + message );
};
greet( 'Jory', 'Welcome to JavaScript' );
greet( 'Rebecca', 'Thanks for joining us' );
Run Code Online (Sandbox Code Playgroud)
为什么我应该将函数分配给 greet 变量?
我的第一个冲动是这样写:
function …Run Code Online (Sandbox Code Playgroud) 可能重复:
var var fn = function(){...}和var fn = function foo(){...}是否有所不同?
从这里
我知道声明函数和将它们声明为变量之间存在差异.
但目前尚不清楚以下两者之间是否存在任何差异:
var func_name = function(param, param1){...};
Run Code Online (Sandbox Code Playgroud)
和:
var func_name = function func_name(param, param1){...};
Run Code Online (Sandbox Code Playgroud)
它们完全相同吗?
在javascript中,函数声明和函数表达式在范围方面有什么区别?功能声明意味着我们正在污染全球空间.是否与函数表达式相同?
功能声明
function sum(){
// logic goes here
}
Run Code Online (Sandbox Code Playgroud)
功能表达
var sum = function(){}
Run Code Online (Sandbox Code Playgroud) 任何人都可以解释为什么这样有效:
var sayHello = function (name) {
alert("Hello there " + name + "!");
}("Mike");
Run Code Online (Sandbox Code Playgroud)
虽然这不是:
function sayHello (name) {
alert("Hello there " + name + "!");
}("Mike");
Run Code Online (Sandbox Code Playgroud)
迈克皮特
我之前没有遇到过这种语法.这是什么意思?它与哪种技术有关?
(function(fun) {
})(myFunkyAlert);
Run Code Online (Sandbox Code Playgroud) 请看这个小提琴.对我来说,它只是一个自动执行的空函数:
function(){}()
Run Code Online (Sandbox Code Playgroud)
谷歌浏览器16.0.912.4 dev-m返回错误:
Uncaught SyntaxError: Unexpected token (
Run Code Online (Sandbox Code Playgroud)
为什么?这特别奇怪,因为添加无关括号将删除错误:
(function(){})()
Run Code Online (Sandbox Code Playgroud) for (i = 1; i <= 6; i++) {
$.post("ajax.php", {param: i}, function (response) {
console.log(i);
});
}
Run Code Online (Sandbox Code Playgroud)
如何在$.post完整函数中获得正确的i变量,我可以将变量传递给它吗?
这有什么区别:
var doSomething=function()
{
//do blah blah blah...
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
function doSomething()
{
//do blah blah blah...
}
Run Code Online (Sandbox Code Playgroud)
另一个问题:在PHP中,我们通过这样做来创建一个函数:
function doSomething(a,b)
{
//do something to variable a and b...
}
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,我们可能在函数之前有一个对象:
object.doSomething(a);
Run Code Online (Sandbox Code Playgroud)
我的第二个问题是,你如何创建一个需要JavaScript中的对象的函数?
可能不是最好的问题,但我在这里有疑问.
写这个有什么不同:
var myFunction = function myFunction () {};
myFunction.instance = null;
Run Code Online (Sandbox Code Playgroud)
还有这个:
var myFunction = function () {};
myFunction.instance = null;
Run Code Online (Sandbox Code Playgroud)
编辑:请仔细阅读,这不是这个var函数的复制函数=函数(){}与函数functionName(){} 上面的链接是解释吊装,这里是关于两个悬挂函数的分配,一个是匿名的,一个不是.