美文网首页让前端飞
JavaScript——表达式与语句

JavaScript——表达式与语句

作者: 2o壹9 | 来源:发表于2020-01-16 09:12 被阅读0次

    表达方式

    表达式产生一个值,并且可以在需要该值的任何地方编写该表达式,例如,将其作为函数调用中的参数或赋值的右侧。以下各行包含一个表达式:

    myvar

    3 + x

    myfunc('a', 'b')

    陈述

    大致上,一条语句执行一个动作。循环和if语句是语句的示例。程序基本上是一系列语句。[ 8 ]

    无论JavaScript希望在哪里声明,您都可以编写表达式。这样的语句称为表达式语句。相反的情况并不成立:您无法在JavaScript需要表达式的地方编写语句。例如,一条if语句不能成为函数的参数。

    条件语句与条件表达式

    区别 如果我们看一下两个相似的语法类别的成员:if语句和条件运算符(一个表达式),则语句和表达式之间的关系会变得更加清晰。

    以下是一个语句示例:if

    var salutation;

    if (male) {

        salutation = 'Mr.';

    } else {

        salutation = 'Mrs.';

    }

    有类似的一种 表示条件运算符。前面的语句等效于以下代码:

    var salutation = (male ? 'Mr.' : 'Mrs.');

    等号和分号之间的代码是一个表达式。括号不是必需的,但是如果我将其放在括号中,我发现条件运算符更容易阅读。

    使用歧义表达式作为语句

    二 各种表达形式看起来像语句,它们在句法类别方面是模棱两可的:

    对象文字(表达式)看起来像块(语句):

    {

        foo: bar(3, 5)

    }

    前面的构造可以是对象文字(详细信息:Object Literals)或块,后跟标签foo:,后跟函数调用bar(3, 5)。

    命名函数表达式类似于函数声明(语句):

    function foo() { }

    前面的构造是命名函数表达式或函数声明。前者产生一个函数,后者产生一个变量并为其分配一个函数(有关这两种函数定义的详细信息:定义函数)。

    为了防止在解析过程中产生歧义,JavaScript不允许您将对象文字和函数表达式用作语句。也就是说,表达式语句不能以以下内容开头:

    大括号

    关键字 function

    如果表达式以这些标记中的任何一个开头,则它只能出现在表达式上下文中。您可以通过例如在表达式两边加上括号来遵守该要求。接下来,我们将看两个必要的示例。

    通过eval()评估对象文字

    eval 解析其参数 陈述语境。如果要eval返回对象,则必须在对象文字周围加上括号:

    > eval('{foo:123}')

    123

    > eval('({{foo:123})')

    {foo:123}

    立即调用函数表达式

    下列代码是立即调用的函数表达式(IIFE),该函数的主体会立即执行(您将了解IIFE在通过IIFE引入新作用域中的用途):

    >(function(){return'abc'}())

    'abc'

    如果省略括号,则会出现语法错误,因为JavaScript会看到一个不能为匿名的函数声明:

    >函数(){返回'abc'}()

    SyntaxError:函数语句需要一个名称

    如果添加名称,还会收到语法错误,因为无法立即调用函数声明:

    >函数foo(){返回'abc'}()

    SyntaxError:意外令牌)

    函数声明之后的内容必须是法律声明,()而不是。

    相关文章

      网友评论

        本文标题:JavaScript——表达式与语句

        本文链接:https://www.haomeiwen.com/subject/hqxfzctx.html