js表达式与语句的区别

http://www.2ality.com/2012/09/expressions-vs-statements.html

http://www.jb51.net/article/31298.htm

表达式    语句

  表达式语句 如 {a:'a'}  function () {}

为了冲突  表达式上下文 不允许 { function 开头

eval(“{a:'a'}”) 解析时  为 语句上下文 可用"({a:'a'})" 变为表达式上下文

function () { return "abc" }() 

SyntaxError: function statement requires a name 你会得到一个语法错误(函数声明不可以是匿名的): 

function foo() { return "abc" }() 

 function foo() { return "abc" }() 还会得到一个语法错误(函数声明不能被理解执行): 

() 作用与表达式上下文解析 但 不允许以function开头

故可以用 添加一元运算符解决

+function () {return :'a'}()

-function () {return :'a'}()

!function () {return :'a'}()

原文地址:https://www.cnblogs.com/chenxijywc/p/5760341.html