因为这些语言不区分空白字符!
需要加分号的语言中,换行和空格一样只是一个空白字符。所以我们认为换行可以结束一个语句时,在语法上只是增加了一个空格,所以真正结束一个语句需要分号或其它符号,比如{}。
有些语言,比如python,区分不同的空白字符,换行就可以做为一个语句结束,不需要分号结束语句。
Javascript则很有意思,它是一个区分空白字符的语言,同时也是一个加分号的语言。比如最典型的语法结构,这里两个return之后空格和换行的含义不一样。
function a() { return { some: "object" } } function b() { return { some: "object" } } 这里a = b后必须加分号
a = b [1,2,3].forEach(function(e){ console.log(e) }) 进一步可以看这个答案:JavaScript 语句后应该加分号么? - 贺师俊的回答 - 知乎 https://www.zhihu.com/question/20298345/answer/14670020
也可以设计一个没有语句的语言,比如说lisp这类,它即不区分空白字符,也不使用分号(或其它符号)来结束语句。但它需要用()来分隔一个表达式的开始和结束。类似的,也有使用空白字符来区分表达式开始和结束的语言,比如 Dylan
语言设计的思想来看,认为空白字符是语言的重要部分,那么很可能不需要用分号,而是用空白字符来表示结束。反之也是如此,ALGOL的free style吧
说完了我想起来,C语言中,大部分语法是不区分空白字符,但C预处理器却是区分空白字符,很有意思。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有