//命名函数表达式
var add = function add(a,b){
return a+b;
};
var foo = function bar() {
console.log(foo === bar);
};
foo();//true
var foo = function bar() {};
console.log(foo === bar);//ReferenceError: bar is not defined
var foo = (function bar() {
console.log(foo === bar);
})();//false
//又名匿名函数
var add = function(a,b){
return a+b;
};
function foo(){
//code here
} //这里可以不需要分号
function f1(){
console.log("I am f1");
}
var f2 = function (){
console.log("I am f2");
};
var f2 = function (){
console.log("I am f2");
};
console.log(f2());//I am f2
(function(){
console.log(this === window);//true
})();
<script type="text/javascript">
//全局函数
function foo(){alert("global foo!");}
function bar(){alert('global bar');}
function hoist(){
console.log(typeof foo);//function
console.log(typeof bar);//undefined
foo();//local foo!
bar();//TypeError: 'undefined' is not a function
//变量foo以及实现者被提升
function foo(){
alert('local foo!');
}
//仅变量bar被提升,函数实现部分 并未被提升
var bar = function(){
alert('local bar!');
};
}
hoist();
</script>
<script>
(function () {
var a = 1;
return function () {
alert(2);
};
}()());//弹出2,第一个圆括号自执行,第二个圆括号执行内部匿名函数
</script>
<script type="text/javascript">
var result = (function () {
return 2;
})();//这里已执行了函数
alert(result);//result 指向了由自执行函数的返回值2;如果弹出result()会出错
</script>
<script type="text/javascript">
var result = (function () {
return function () {
return 2;
};
})();
alert(result());//alert(result)的时候弹出function(){return 2}
</script>
var abc = (function () {
var a = 1;
return function () {
return ++a;
}
})();//自执行函数把return后面的函数返回给变量
alert(abc());//如果是alert(abc)就会弹出return语句后面的代码;如果是abc(),则会执行return后面的函数
// 这是一个自执行的函数,函数内部执行自身,递归
function abc() { abc(); }
<script type="text/javascript">
var call = function(){
console.log("100ms will be asked…");
};
setTimeout(call, 100);
</script>
<script type="text/javascript">
//curry化的add()函数
function add(x,y){
var oldx = x, oldy = y;
if(typeof oldy == "undefined"){
return function(newy){
return oldx + newy;
};
}
//完全应用
return x+y;
}
//测试
typeof add(5);//输出"function"
add(3)(4);//7
//创建并存储一个新函数
var add2000 = add(2000);
add2000(10);//输出2010
</script>
<script type="text/javascript">
//普通函数
function add(x,y){
return x + y;
}
//将一个函数curry化以获得一个新的函数
var newadd = test(add,5);
newadd(4);//9
//另一种选择,直接调用新函数
test(add,6)(7);//输出13
</script>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有