<script>
~function() {
alert("第一种方式,使用特殊符号的奇淫技巧。");
}();//第一种写法
</script>
<script>
var foo = function() {
alert("第二种方式");
}();//第二种写法【不建议如此书写】
</script>
<pre>
1.函数声明和函数表达式的区别,将函数赋值到一个变量名上就可以使其成为函数表单式
function sum(a,b){alert(a+b);}-----函数声明
var m=function sum(a,b){alert(a+b);}------函数表达式
2.为什么去掉位操作符『~』后运行会报错,这是因为从语法解析的角度看,Javascript不允许在函数声明的后面直接使用小括号,
而函数表达式则没有这个限制,通过在函数声明前面加上一个『~』操作符,就可以让语法解析器把后面看成是函数表达式,
同样的,在函数声明前面加上『!,+,-』等操作符也是可行的。
3.为什么不建议‘第二种写法’?
虽然从语法解析的角度看没有问题,但是上面的代码存在弊端,它引入了一个变量,可能会污染现有的运行环境,带来潜在的问题。
使用位操作符“~”的方法多少显得有点奇技淫巧,其实把函数声明用小括号套起来更易读【即第三种书写方式】
4,第三种方式便于理解,即由alert('第三种方式便于理解'),书写为
(alert)('第三种方式便于理解')
<script>
(function() {
alert("第三种方式便于理解");
})();//第三种写法
</script>
</pre>
~function() {
alert("第一种方式,使用特殊符号的奇淫技巧。");
}();//第一种写法
</script>
<script>
var foo = function() {
alert("第二种方式");
}();//第二种写法【不建议如此书写】
</script>
<pre>
1.函数声明和函数表达式的区别,将函数赋值到一个变量名上就可以使其成为函数表单式
function sum(a,b){alert(a+b);}-----函数声明
var m=function sum(a,b){alert(a+b);}------函数表达式
2.为什么去掉位操作符『~』后运行会报错,这是因为从语法解析的角度看,Javascript不允许在函数声明的后面直接使用小括号,
而函数表达式则没有这个限制,通过在函数声明前面加上一个『~』操作符,就可以让语法解析器把后面看成是函数表达式,
同样的,在函数声明前面加上『!,+,-』等操作符也是可行的。
3.为什么不建议‘第二种写法’?
虽然从语法解析的角度看没有问题,但是上面的代码存在弊端,它引入了一个变量,可能会污染现有的运行环境,带来潜在的问题。
使用位操作符“~”的方法多少显得有点奇技淫巧,其实把函数声明用小括号套起来更易读【即第三种书写方式】
4,第三种方式便于理解,即由alert('第三种方式便于理解'),书写为
(alert)('第三种方式便于理解')
<script>
(function() {
alert("第三种方式便于理解");
})();//第三种写法
</script>
</pre>