zoukankan      html  css  js  c++  java
  • 理解JS表达式

    表达式:是由运算元和运算符(可选)构成,并产生运算结果的语法结构。

    基本表达式

    以下在ES5中被称为基本表达式(Primary Expression)
    • this、null、arguments等内置的关键字
    • 变量。即一个已声明的标识符
    • 字面量。仅包括数字字面量、布尔值字面量、字符串字面量、正则字面量
    • 分组表达式,即用来表示立刻进行计算的

    这类表达式是原子表达式,是无法再分解的表达式。

    复杂表达式

     除基本表达式以外,还有如下表达式,称为复杂表达式,这类表达式需要其它表达式参与

    • 对象的初始化表达式、数组的初始化表达式:分明也是字面量的一种,但不把它们算作基本表达式,是因为对象字面量、数组字面量所包含的成员也都是表达式。数组初始化表达式语法如下:

      [expression,expression,expression]
      
      可以有0个及其以上个子表达式
      

      对象的初始化表达式如下:

      {
        expression1: expression2,
        expression1: expression2,
        expression1: expression2
      }
      在ES5及其之前,expression1只能是字符串字面量;
      
      ES6开始支持如下语法:
      
      {
        [expression1]: expression,
        [expression1]: expression,
        [expression1]: expression
      }
      expression1可以是任何返回值为字符串或Symbol类型的表达式(ES6新增的一种数据类型,Symbol可用来定义对象的唯一属性名;)
    • 函数定义表达式(注意,需与函数声明语句区分开)
    • 属性访问表达式:之前一直以为跟在对象后面的句点或者方括号是运算符,实际上不是,它们是属性访问表达式的语法结构的一部分。属性访问表达式语法如下:
      expression.identifier
      
      其中,expression可以是任意的表达式,identifier是属性名(必须合法)
      
      或者
      expression1[expression2]
      
      其中,两个expression可以是任意的表达式
      expression2的值会被转化为字符串(除非它是一个Symbol类型)
      
    • 调用表达式: 分为“方法调用”与“函数调用”。方法调用的语法是:
      expression0([[expression1[,expression2[,expression3]]])
      
      其中,expression是一个返回值为函数对象的属性访问表达式,小括号提供一个逗号分隔的参数列表。
      
    以上所有表达式,由于未使用运算符,称为单值表达式。除此之外的叫做复合表达式

    JavaScript表达式总有返回值,其中,单值表达式的结果是值本身,其他表达式结果是根据运算符进行运算的结果值。

    由于每个表达式都有返回值,因此每个表达式都能作为“邻近”的表达式的运算元参与运算。可以将无限个表达式“邻近”地连接成复合表达式

    总结:分类如下

    • 单值表达式:不使用运算符的表达式
      • 简单表达式:不能再分解的表达式
      • 复杂表达式:需要其它表达式参与的表达式
    • 复合表达式:由运算符将多个单值表达式结合而成的表达式

    所有表达式均有返回值

    ===============================

    语句:JavaScript代码由语句构成,表明了执行过程的流程、限定和约定,形式上可以是单行语句,也可以是由大括号括起来的复合语句。语句由分号来分隔。语句是“使某事发生”的指令,不存在返回值一说

    当语句位于以下地点之一时,可以省略分号(不会出现语法错误,但可能造成执行阶段的错误):

    • 一行的最后
    • 整个代码文件的最后
    • 在语法分隔符之前(如复合语句的大括号“}”)
    • 复合语句的大括号“}”之后

    其它情况下遗漏分号,会在语法分析过程中报错,全部代码完全不执行。

    语句中比较特殊的一类是表达式语句,表示“只有表达式,没有其它语法元素的语句”,例如:

    1+2+3;
    

    就是一个表达式语句。

    链接:https://www.zhihu.com/question/39420977/answer/81250170

  • 相关阅读:
    如何获取汉字对应的拼音
    php each()函数和list()函数
    php list()函数
    addslashes给预定义字符前面加上反斜杠
    array_filter() 过滤数组中的空白元素
    用.htaccess文件实现URL重写
    xml中实体引用
    onsubmit阻止表单提交
    php获取当前文件绝对路径
    array_merge() 函数的用法
  • 原文地址:https://www.cnblogs.com/fangsmile/p/8337021.html
Copyright © 2011-2022 走看看