在阅读关于IronJS的文章时,我可以在这篇文章中找到http://ironjs.wordpress.com/
其中包括:
*上下文敏感函数关键字
如果您不知道,这两个函数不相同:
(function bar() { })
function foo() { }
Run Code Online (Sandbox Code Playgroud)
找出差异,我将作为练习留给读者.
有人可以解释这里的区别吗?
可能重复:
围绕JavaScript对象/函数/类声明的括号是什么意思?
这个"(function(){});",括号内的函数在javascript中是什么意思?
一个Javascript函数
我遇到类似这样的标记:
var something = (function(){
//do stuff
return stuff;
})()
document.ondblclick = function(e) { alert(something(e)) };
Run Code Online (Sandbox Code Playgroud)
我不明白的开(闭)()的something变量.你能解释一下写这样的差异吗?
var something = function(){
//do stuff
return stuff;
};
Run Code Online (Sandbox Code Playgroud)
谢谢!
window.onbeforeunload当发生关闭事件时,我正在使用弹出确认对话框,但页面刷新时会出现确认对话框,并且不会在页面关闭时执行.
这是JavaScript代码:
<script language="JavaScript">
window.onbeforeunload = confirmWinClose();
function confirmWinClose() {
var confirmClose = confirm('Close?');
return confirmClose;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我在Chrome,Firefox和Internet Explorer上尝试过它.
javascript中的函数声明"function test()"和"test:function()"有什么区别?
function test() {
…
}
Run Code Online (Sandbox Code Playgroud)
VS
test: function() {
…
}
Run Code Online (Sandbox Code Playgroud)
在var functionName = function(){} vs function functionName(){}问题函数被声明为:
function test() {
…
}
Run Code Online (Sandbox Code Playgroud)
和
var test = function() {
…
};
Run Code Online (Sandbox Code Playgroud)
从语法角度来看,我的问题中的函数看起来并不相同.
所以我只是要在我们每个不断增长的全局列表(叹息)中添加一个新函数,并注意到最后一个用户使用了一个简单的变量赋值function a(){}.
function aFunction(){
return null;
}
var bFunction = function(){
return null;
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个测试,看看它是否有所作为; 它确实如此,但却是一个相互冲突的.(chrome支持简单的功能,而firefox的变量赋值).
Firefox:功能创建(90 +%慢)/创建变量赋值(最快)
Chrome:功能创建(最快)/使用变量赋值创建(70 +%慢)
我明白这是微不足道的,但有任何理由存在差异,是否有更好的方法来做到这一点?
在Babel JS的在线REPL(http://babeljs.io/repl/)中,当我输入时:
let a = (x) => x+1
Run Code Online (Sandbox Code Playgroud)
它将被转化为:
"use strict";
var a = function a(x) {
return x + 1;
};
Run Code Online (Sandbox Code Playgroud)
这var a = function a(x)看起来有点令我困惑,因为我理解其中任何一个var a = function(x)或function a(x)足够.
有没有人有关于何时以及为什么需要将命名函数分配给变量的想法?
据我所知(参见16.3.2.1节),ES6允许函数/类导出操作数的不同语法.差异是指导出的函数是否需要在导入时解释为函数声明,在这种情况下,您可以编写:export default function () {} // (a)或作为函数表达式:export default (function () {}); // (b).
作为一个可能的相关旁注:我读到进口是悬挂的,但我不确定这意味着什么.
以这个例子为例:
import foo from 'my_module'; // (c)
据我了解,上面的语句将我的导出函数保存在foo变量中.这个变量是悬挂的,或是什么,何时?
最重要的是,foo当my_module使用函数(a)和使用函数导出时,有什么区别(在设置方面)(b)?
从 React Hooks 开始,我决定放弃 React 类组件。我现在只处理钩子和功能组件。
简单的问题:
我理解在类体内使用箭头函数而不是常规函数之间的区别。箭头函数会自动绑定(词法 this)到我的类的实例,我不必在构造函数中绑定它。这很好。
但由于我不再处理类,我想知道在功能组件内部执行以下操作有什么区别:
function App() {
// REGULAR FUNCTION
function handleClick1() {
console.log('handleClick1 executed...');
}
// ARROW FUNCTION
const handleClick2 = () => {
console.log('handleClick2 executed...');
}
return(
<React.Fragment>
<div className={'div1'} onClick={handleClick1}>
Div 1 - Click me
</div>
<div className={'div2'} onClick={handleClick2}>
Div 2 - Click me
</div>
</React.Fragment>
);
}
Run Code Online (Sandbox Code Playgroud)
题
两者都工作正常。
性能上有区别吗?我应该赞成一种方式而不是另一种方式吗?它们都在每次渲染时重新创建,对吗?
关于可能重复的注意事项
我真的不认为这是一个重复的问题。我知道关于箭头和正则之间的区别有很多问题,但我想从 React 功能组件的角度了解 React 是如何处理它的。我环顾四周,没有找到。
用于测试的代码片段
function App() {
// REGULAR …Run Code Online (Sandbox Code Playgroud)我的查询用于"(function(){...})();" 鉴于我不是插件.例如" http://piecesofrakesh.blogspot.com/2009/03/downloading-javascript-files-in.html "
(function() {
var s = [
"/javascripts/script1.js",
"/javascripts/script2.js"
];
var sc = "script", tp = "text/javascript", sa = "setAttribute", doc = document, ua = window.navigator.userAgent;
for(var i=0, l=s.length; i<l; ++i) {
if(ua.indexOf("MSIE")!==-1 || ua.indexOf("WebKit")!==-1) {
doc.writeln("<" + sc + " type=\"" + tp + "\" src=\"" + s[i] +
"\" defer></" + sc + ">");
} else {
var t=doc.createElement(sc);
t[sa]("src", s[i]);
t[sa]("type", tp);
doc.getElementsByTagName("head")[0].appendChild(t);
}
}
})();
Run Code Online (Sandbox Code Playgroud)
要么
var s = [
"/javascripts/script1.js",
"/javascripts/script2.js"
]; …Run Code Online (Sandbox Code Playgroud) 以不同的方式在ES6/ES2015中创建顶级功能有哪些优点/缺点?或者这仅仅是品味/风格指南等问题?
选项1:
function square(n) {
return n * n;
}
Run Code Online (Sandbox Code Playgroud)
选项2:
var square = function(n) {
return n * n;
};
Run Code Online (Sandbox Code Playgroud)
选项3:
var square = (n) => {
return n * n;
};
Run Code Online (Sandbox Code Playgroud)
选项4:
const square = (n) => {
return n * n;
};
Run Code Online (Sandbox Code Playgroud)