搜索
javascript - JS表达式和语句的区别
大家讲道理
大家讲道理 2017-04-10 16:27:04
[JavaScript讨论组]

这里说道如果方法调用是语句的话代码的结果也就是字符串形式是不可能被写出来的。JS的语句不是也存在返回值的嘛?。。对JS中表达式和语句的区别一直有些晕。。JS里的表达式和语句到底应该怎么区分。二者到底有什么不同的用处呢?哪个大神能给我个完全的解答或者链接帮我彻底解除这个疑惑呢?先谢谢了。。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
黄舟

计算机语言发展到 C 就已经不区分函数和子过程了。

在 javascript 中所有表达式都有返回值(如果没有返回值就是undefined),这个返回值就可以继续作为表达式的一部分。大多数语言表达式的定义基本分为(忽略优先级):运算符 表达式(一元,比如!true) 表达式 运算符 表达式(二元,比如1+2) 表达式1 ? 表达式2 : 表达式3(三元,a>b?a:b) 左括号 表达式 右括号(括号 (1+2)) 表达式(参数列表)(函数调用)等。 可见这是一种递归的定义,所以又规定字面量(就是1,2,3,“abc”),this等是表达式。那么什么是表达式已经很明显了。

上面这段话“语句”的意思是指不是表达式的语句。在 javascript 里面满足这个条件的就函数声明、变量声明(var a=10是声明和赋值)、for语句、if语句、while语句、switch语句、return、try catch。
但是 javascript 还有一种函数表达式,它的形式跟函数声明一模一样。如果写 function fn() { return 0;} 是函数声明而写var a = function fn(){ return 0;} 等号后面的就是函数表达式。

楼主还是不要纠结什么是语句什么是表达式了,因为大多数时候我们说“语句”是指这门语言中的“一句话”。而表达式本身就可以作为“一句话”(表达式加一个分号就是“语句”),这段话的是说函数调用(方法调用)是表达式而已。

黄舟

最简单的区别:表达式可以嵌套在别的表达式中,但语句不行。语句只能独立出现。

另外,语句没有返回值。

ringa_lee

表达式计算出一个值,但语句用来执行以使某件事发生。
《JavaScript权威指南》(第6版)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板