03.基本概念--JavaScript高级程序设计(笔记)

00.标识符:变量、函数、属性的名字,或者函数的参数.

 

 

01.注释: a. //单行注释 b. /*多行注释*/

 

02.语句:ECMAScript中的语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾。

 

03.变量:ECMAScript的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。

 

 

04. 备注:全局变量 function test() { message = "hi"; //全局变量 } 省略var操作符,因而message就成了全局变量。这样,只要调用过一次test()函数,这个变量就有了定义,就可以在函数外部的任何地方被访问。 虽然省略var操作符可以定义全局变量,但这也不是我们推荐的做法。因为在局部作用域中定义的全局变量很难维护,而且如果有意地忽略了var操作符,也会由于响应变量不会马上就有定义而导致不必要的混乱。给未经声明的变量赋值在严格模式下回导致抛出ReferenceError错误。

 

05.数据类型:Undefined\NULL\Boolean\Number\String和Object。Object本质上是由一组无序的名值对组成的。

 

06.typeof操作符返回值: a.undefined--如果这个值未定义 b.boolean--如果这个值是布尔值 c.string--如果这个值是字符串 d.number--如果这个值是数值 e.object--如果这个值是对象或null f.function--如果这个值是函数

 

07.null类型 null类型是第二个只有一个值的数据类型,是一个object对象。只要意在保存对象的变量还没有真正保存对象,就应该明确地让该汴玲保存null值。

 

08.Boolean类型

数据类型转换为true的值转换为false的值
BooleanTRUEFALSE
String任何非空字符串""空字符串
Number任何非零数字值0和NaN
Object任何对象null
Undefinedn/aundefined
 

 

09.Number类型

e表示法(即科学基数法),表示的浮点数值表示。 例如:var flaoatNum = 3.125e7 //等于31250000。

备注:关于浮点数值计算会产生摄入误差问题,有一点需要明确:这是使用基于IEEE754数值的浮点计算的通病,ECMAScript并非毒刺一家;其他使用相同数值格式的语言也存在这个问题。

 

10.NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数为返回数值的情况。 函数isNaN()函数是否一个数值。

 

11.数值转换函数Number()\parseInt()\parseFloat(). 

 

12.String类型:用于表示由0或多个16位Unicode字符组成的字符序列,即字符串。字符串可以有双引号"和单引号表示。

  a.字符字面量

     

  b.字符串的特点:ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,他们的值就不能改变。要gianbian某个变量保存的字符串,首先要销毁原来的字符串,然后在用一个包含新的字符串填充该变量。

  c.转换位字符串:要把一个值转换为一个字符串有两种方式。

  d.object类型:创建Object类型的示例并未其添加属性和方法,就可以创建自定义对象。

    具有一下特点:

      d1.Constructor:保存着用于创建当前对象的函数。

      d2.hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。其中参数的属性名(propertyName)必须以字符串形式制定

      d3.isPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型

      d4.propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。与

      d5.toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应

      d6.toString():返回对象的字符串表示

      d7.vlaueOf():返回对此昂的字符串、数值或布尔值表示。通常与toString()方法的返回值。

  e.浏览器环境中的对象,比如BOM和DOM中的对象,都属于宿主对象,因为它们是由宿主实现提供和定义的。

 

13.一元操作符:++和--

14.位操作符:

  a.按位非(NOT):~

  b.按位与(AND):&

  c.按位或(OR):|

  d.按位异或(XOR):^

  e.左移和右移:<<和>>

  f.无符号的右移:>>>

  备注:有符号和无符号移位

  

 15.布尔操作符

  a.逻辑非(!)

  b.逻辑与(&&)

    b1.如果抵押给操作数是对象,则返回第二个操作数

    b2.如果第二个操作数是对象,则只有在第一个操作数的求值结果为ture的情况下才会返回该对象

    b3.如果两个操作数都是对象,则返回第二个操作数

    b4.如果一个操作数是null,则返回null

    b5如果一个操作数是NaN,则返回NaN

    b6.如果有一个操作数是undefined,则返回undefined.

  c.逻辑或(||)

    c1.如果第一个操作数是对象,则返回第一个操作数

    c2.如果抵押给操作数是求值结果为false,则返回第二个操作数

    c3.如果两个操作数都是对象,则返回第一个操作数

    c4.如果两个操作数都是null,则返回null

    c5.如果两个操作数都是NaN,则返回NaN;

    c6.如果两个操作数都是undefined,则返回undefined.

 

16.乘性操作符

  a.乘法(*) 

    a1.如果超过ECMAScript数值的表示范围,则返回Infinity或-Infinity

    a2.如果有一个操作数是NaN,则结果是NaN

    a3.如果有一个操作数是NaN,则结果是NaN

    a4.如果是Infinity与0相乘,则结果是NaN

    a5.如果Infinity与非0数值相乘,则结果是Infinity或-Infinity,取决于有符号操作数的符号

    a6.如果是Infinity与Infinity相乘,则结果是Infinity

 

  b.除法(/)

    b1.如果操作数都是数值,执行常规的除法计算,即两个证书或两个负数相除的结果还是证书。如果超过ECMAScript数值的表示范围,则返回Infinity或-Infinity

    b2.如果有一个操作数是NaN,则结果是NaN

    b3.如果有Infinity和-Infinity

    b4.如果有一个操作数是NaN,则结果是NaN

    b5.如果是零被零出,则结果是NaN

    b6.如果是非零的有限数被零出,则结果是Infinity或-Infinity,取决于有符号操作数的符号

    b7.如果是Infinity被任何非零数值除,则结果是Infinity或-Infinity取决于有符号操作数的符号。

  c.求模(%)

    c1.如果操作数都是数值,执行常规的除法计算,返回除的的余数

    c2.如果被除数是无穷大值而除数是有限大的数值,则结果是NaN

    c3.如果被除数是有限大而除数是零,则结果是NaN

    c4.如果是Infinity被Infinity除,则结果是NaN

    c5.如果被除数是有限大的数值而除数无穷达的数值,则结果是被除数

    c6.被处数是0,则结果是0

    c7.如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后在应用上面的规则。

 

17.加性操作符

  a.加法(+)

    如果一个操作数是NaN,则结果是NaN

    如果是Infinity加Infinity,则结果是Infinity;

    如果是Infiity加-Infinity,则结果是NaN

    如果是-Infinity加-Infinity,则结果是-Infinity;

    备注:a1.如果两个操作数都是字符串,则将第二操作数与第一个操作数拼接起来

        a2.如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后在将两个字符串拼接起来

  b.减法(-)

    备注:如果一个操作数是字符串、布尔值、null或undefined,则在后台调用Number()函数将其转换为数值,然后在根据前面的规则执行减法计算

        如果有一个操作数是对象,则调用对象的valueOf()方法以取得表示该对象的数值。

 

18.关系操作符(>\<\<=\>=)

19.相等操作符(==\===\!=\!==)

  a.相等操作符由两个等于号(==),如果两个操作数相等,则返回true.而不相等操作符由叹号后跟等于号(!=)表示,如果两个操作数不想等,则返回true.

  b.要比较相等性之前,不能将nul和undefine转换成其他任何值

  c.null和undefined是相等

  d.重要提示:及时两个操作数都是NaN,相等操作符也返回false,因为按照规则,NaN不等于NaN

  e.如果操作数都是对象,则比较他们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true;否则,false.

 

20.全等和不全等:由于相等和不相等操作符存在类型转换问题,而为了保持代码中数据类型的完整性。

21.条件操作符(? : )

 

22.逗号操作符(,,,,,)

 

23.条件语句

  a.if (condition) statement1 else statement2

  b.do-while

  c.while

  d.for

  e.for-in(一种精准的迭代语句,可以用来枚举对象的属性)

 

24.label语句:label:statement

 

25.break和continue语句:break语句会立即退出循环,强制继续执行循环后面的语句。而continue语句虽然也立刻退出循环,但推出循环后悔会从循环的顶部继续执行。

 

26.with语句

  with语句的作用是将代码的作用域设置到一个特定的对象中。

  with(expression) statement;

  定义with语句的目的主要是为了简化多次编写同一个对象的工作

    var qs = location.serch.substring();

    var hostName = location.hostname;

    var url = location.href

  使用with

    with(location) {

      var qs = search.substring();

      var hostName = hostname;

      var url = href;  

    } 

 

27.switch(i) {

  case 25:break;

  case 35:break;

  case 45:break;

  }

 

28.函数(function):通过函数可以封装任意多条语句,而且可以在任何地方,任何时候调用执行。

  function functonName(arg0, arg1, arg2,...,argN) {

    statements;

  }

 

29.理解参数:在函数体内可以通过arguments对象来访问这个参数数组,从而获取床底给函数的每一个参数。没有传递值的命名参数将自动被赋予undefine值。者就跟定义了变量但又没有初始化一样。例如,如果只给doAdd()函数传递了一个参数,则num2中会保存undefined值。

 

  

 

 

  

posted @ 2018-08-22 21:44  艾小小雨  阅读(146)  评论(0编辑  收藏  举报