首页
登录 | 注册

JavaScript 基础知识 表达式和运算符

  表达式的概念:将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连起来的、有意义的式子称为表达式

一、原始表达式

  最简单的表达式,是表达式的最小单位。JavaScript中的原始表达式包含常量或直接量、关键字和变量

  1.直接量:

    1.23  //数字直接量

    “hello”  //字符串直接量

    /pattern/  //正则表达式直接量

  2.关键字:

     true  //返回一个布尔值:真

     false  //返回一个布尔值:假

     null  //返回一个值:空

     this  //返回“当前”对象

  3.变量:

     i   //返回变量i的值

     sum    //返回sum值

     undefined     //undefined是全局变量,和null不同,他不是一个关键字

二、对象和数组的初始化表达式

  对象和数组初始化表达式实际上是一个新创建的对象和数组。这些初始化表达式有时称作“对象直接量”和“数组直接量”

  1.数组初始化表达式是通过一对方括号和其内由逗号隔开的列表构成的,初始化的结果是一个新创建的数组。数组的元素是逗号分隔的表达式的值

    []   //一个空数组

    [1,5+6]   //拥有两个元素的数组

   这些表达式也可以嵌套   比如:var  arr  =  [[1,2,3],[4,5,6],[7,8,9]]

   数组直接量中的列表逗号之间的元素可以省略,这是省略的空位会填充undefined

  2.对象初始化表达式和数组初始化表达式类似,知识方括号被花括号代替,并且每个子表达式都包含一个属性名和一个冒号作为前缀

    var p = {x:2,y:-1.2}    // 一个拥有两个属性成员的对象

    var q = {}    //一个空对象

    对象直接量也可以嵌套  如:var  reactangle = {upperLeft:{x:2,y:2},lowerRight:{x:4,y:5}}

 三、函数定义表达式

  函数定义表达式定义一个JavaScript函数。表达式的值是这个新定义的函数。从某种意义上讲,函数定义表达式可称为“函数直接量”,毕竟对象初始化表达式成为“对象直接量”。一个典型的函数定义表达式包含关键字function,跟随其后的是一对圆括号,括号内是一个以逗号分割的列表,列表含有0个或多个标识符(参数名),然后再跟随一个由花括号包裹的JavaScript代码段(函数体)

  如:  var square = function(x) {return x*x}  //这个函数返回传入参数值得平方

函数定义表达式可以包含函数的名字。函数也可以通过函数语句来定义,而不是函数表达式。

四、属性访问表达式

  属性访问表达式运算得到一个对象属性或一个数组元素的值。JavaScript为属性访问定义两种语法:

      expression.identifier

      expression[expression]

  第一种写法是一个表达式后跟随一个句点和标识符。表达式指定对象,标识符指定需要访问的属性名称

  第二种写法是使用方括号,方括号是另外一个表达式(这种方法适用于对象和数组)

五、调用表达式

  JavaScript中的调用表达式是一种调用(或者执行)函数或方法的语法表示。它以一个函数表达式开始,这个函数表达式只带了要调用的函数。函数表达式后跟随一对圆括号,括号内饰一个以逗号隔开的参数列表,参数可以有0个也可以有多个,列如:

    f(0)  //  f  是一个函数表达式,0是一个参数

    Math.max(x,y,z)   //  Match.max是一个函数, x,y,z是参数

    a.sort()   //  a.sort是一个函数,没有参数

当对调用表达式进行求值的时候,首先计算函数表达式,然后计算参数表达式,得到一组参数值。如果函数表达式的值不是一个可调用的对象,则抛出一个类型错误异常,然后实参的值一次赋值给形参,这些形参是定义函数式指定的,接下来开始执行函数体,如果函数使用return语句给出一个返回值,那么这个返回值就是整个调用表达式的值。否则,调用表达式的只就是undefined。函数调用---包括形参表达式的个数和函数定义中实参的个数不匹配的时候运行

六、对象创建表达式

  对象创建表达式创建一个对象并调用一个函数(这个函数称做构造函数)初始化新对象的属性。对象创建表达式和函数调用表达式类似,只是对象创建表达式之前多了一个关键字new:

    new  Object()

    new Potint(2,3)

 

未完待续......


相关文章

  • 如何零基础开始自学Python编程
    转载——原作者:赛门喵 链接:https://www.zhihu.com/question/29138020/answer/141170242 0. 明确目标 我是真正零基础开始学Python的,从一开始的一窍不通,到3个月后成功搭建了一个 ...
  • 补习系列(20)-大话 WebSocket 与 "尬聊"的实现
    目录 一.聊聊 WebSocket 二.Stomp 是个什么鬼 三.SpringBoot 整合 WebSocket A. 引入依赖 B. WebSocket 配置 C. 控制器 D. 前端实现 四.参考文档 一.聊聊 WebSocket 从 ...
  • 一.前言 在日常开发中,我们经常会碰到需要在运行时才知道对象个数的情况,这种情况不能使用数组,因为数组是固定数量的,这个时候我们就会使用集合,因为集合可以存储数量不确定的对象. 集合类是特别有用的工具类,不仅可以存储数量不等的对象,还可以实 ...
  • 汝之蜜糖,吾之砒霜——聊聊软件开发中的最佳实践
        "描述一个事物,唯有一个名词定义它的概念,唯有一个动词揭露它的行为,唯有一个形容词表现它的特征.要做的,就是用心去寻找那个名词.那个动词.那个形容词--" -- 福楼拜 (Gustave Flaubert)   ...
  • 从 docker 到 runC
    笔者在前文<RunC 简介>和<Containerd 简介>中分别介绍了 runC 和 containerd.本文我们将结合 docker 中的其它组件探索 docker 是如何把这些组件组织起来协调工作的. Doc ...
  • Dom4J配合XPath解析schema约束的xml配置文件问题
    如果一个xml文件没有引入约束,或者引入的是DTD约束时,那么使用dom4j和xpath是可以正常解析的,不引入约束的情况本文不再展示. 引入DTD约束的情况 mybook.dtd: <?xml version="1.0&q ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.076 s.
京ICP备10005923号