运算符 与 对象

一、JavaScript运算符:也叫操作符,通过运算符可对一个或多个值进行运算,并获得运算结果。它包括:算数运算符、逻辑运算符、赋值运算符、关系运算符、条件运算符。

(1)  算数运算符(+加、-减、*乘、/除、%取模、++自增、--自减)

  (+加)①可以对两个值进行加法运算,或两个字符串进行拼接。

               ②任何值和字符串做加法运算,都会先转为字符串再和字符串拼接。

              ③“+”可完成隐式转换。

  (-减)对两个值进行减法运算,并返回结果。

  (*乘)对两个值进行乘法运算,并返回结果。

  (/除)对两个值进行除法运算,并返回结果。

特别提醒:任何值做-、*、/运算时,会自动转换为Number,可利用这一特性完成隐式转换。

  (%取模)取模运算(取余数)

  (++自增)

     

typescript 没有运算符重载 没有运算符的运算对象_运算符

  (--自减)

 

typescript 没有运算符重载 没有运算符的运算对象_返回结果_02

逻辑运算符(!非、&&与、||或)

     (!非)①非运算指对一个布尔值(true、false)进行反操作。false --》true  true --》false

                   ②若对一个布尔值进行2次非运算,则值不改变。

                   ③若对非布尔值进行运算,则先转换为布尔值,在反操作。

利用这点,可将一个值转换为布尔类型:两次非运算

     (&&与)①&&可对符号两侧的值进行与运算并返回结果

                       规则:两个值只要有一个是false,则返回false

                      两个值都是true,则返回true

                   ②JS中的“与”只要有一个false,则返回false

      (||或) ①||可对符号两侧的值进行或运算并返回结果

或运算与(与运算恰恰相反)

                  ②JS中的“或”只要有一个为true,则返回true,不会再去检查第二个值。

(2) 赋值运算符(=、+=、-=、*=、/=、%=)

         赋值符:可将符号右侧的值赋值给左侧的变量。

typescript 没有运算符重载 没有运算符的运算对象_javascript_03

  1. 关系运算符(>大于、>=大于等于、<小于、<=小于等于、==相等、!=不等、===全等【数据类型与值都等】、!==不全等)运算结果为布尔值
  2. 条件运算符(也叫三元运算符)

        语法:条件表达式?语句1:语句2;

        流程:①在执行时,首先对表达式进行求值。

反之,则执行语句2,并返回结果。

二、运算符优先级

     在JS中的优先级与数学中的优先级一样。

如数学中,先乘除,后加减,有括号先算括号的。

     在JS中,算数运算符à关系运算符à逻辑运算符à赋值运算符。

三、流程控制语句

   程序中的三种基本流程结构:

  • 顺序结构:按照顺序执行代码,从上到下。
  • 分支结构:执行代码时,可根据条件进行选择,条件越多对应的结果越多,分支越多。

如:if……else……语句,switch语句

  • 循坏结构:用来重复不断地做一件事。

      如:for循环、while循环、do……while循环。

四、对象简介

对象:在JS中,那个值不是基本数据类型的为对象,对象可存储多个不同数据类型,所以它属于一种复合数据类型。

      常见的三种对象:①内建对象:由ES标椎中定义的对象,在任何ES中都可以用

如:Math、String、Number、Boolean、Function、Object……

                                   ②宿主对象:由JS运行环境提供的对象,目前主要指由浏览器提供的对象。

比如:BOM(浏览器对象模型) DOM(文档对象模型)

如:常用的console.log()  是DOM中的对象。

                                  ③自定义对像:由开发人员自己定义的对象。

     创建对象:使用new关键字调用函数,即是构造函数constructor

      构造函数:是专门用来创建对象的函数。

如:var  obj=new  Object(); //创建函数

    在对象中保存的值称为属性:

  1. 向对象添加属性的语法:①对象·属性名=属性值

                   ②对象[“属性名”]=属性值

     2. 获取对象属性的语法:①对象·属性名 ②对象[“属性名”]

注意:如果对象中没有属性,不会报错而是返回undefined。

对象的属性值可以是任意的数据类型。

五、对象的属性名与属性值(拓展)

              属性名:对象的属性名不强制要求尊守标识符规则(但,不允许这样使用,我们自己定义的使用都必须遵守标识符规则)。

                in运算符:通过该运算符检查一个对象中是否有指定的属性(有,则返回true;反之,false)

语法:“属性名” in 对象

六、基本数据类型与引用数据类型

  1. JS中的变量都是在栈内存中的。 
  2.     ①基本数据类型的值直接在栈内存中存储。
  3.      ② 值与值之间是独立的,修改一个变量不会影响其它的变量。
  4. 对象是保存在堆内存中的,每创建一个新对象,都会在堆内存中开辟一个新空间。
  5. 而变量保存在对象的堆内存地址(对象的引用),如果两个变量保存在同一个对象引用,那么一个变量被修改属性时,会影响到另一个变量。

typescript 没有运算符重载 没有运算符的运算对象_返回结果_04

typescript 没有运算符重载 没有运算符的运算对象_属性值_05

typescript 没有运算符重载 没有运算符的运算对象_typescript 没有运算符重载_06

 

七 、对象字面量

  1. 使用对象字面量时,可以在创建对象时直接指定对象中的属性。

           语法:{属性名1:属性值1,属性名2:属性值2,……}

          注意:对象字面量的属性名可以加引号,建议不加,但使用一些特殊的属性名时,必须加引号

  1. 属性名与属性值是一组“键值对”结构。
  2.   ①键与值之间用“:”冒号链接,键值对与键值对之间使用“,”逗号隔开。
  3.   ②如果一个属性之后没有其他的属性了,就不要加“,”逗号。

typescript 没有运算符重载 没有运算符的运算对象_typescript 没有运算符重载_07