JavaScript高级程序设计——学习笔记(基本概念 一)

1、区分大小写

  ECMAScript中的一切都区分大小写,包括变量、函数名和操作符。

  ep:test和Test是两个变量,typeof是一个关键字所以它不能用来做为函数名,但是typeOf则完全可以是一个有效的函数名。

2、标示符

  标示符:变量、函数、属性的名字,或者函数的参数。

  标示符的命名方式:

    第一个字符可以是字母、下划线(_)或是一个美元符号($)。

    其他字符可以是字母、下划线、美元符号或数字。

3、注释

  •   //单行注释
  •       /* ...代码.... */多行注释    

4、严格模式

  ECMAScript 5 引入了严格模式的概念。严格模式是为JavaScript定义了一种不同的解析与执行模式。在严格模式下,ECMAScript 3 中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。

  "use strict";  

  这是一个编译指示用于告诉支持的JavaScript引擎切换到严格模式。位置:要位于整个脚本顶部。

  function doSomething() {

    "use strict";

    //函数体

  }

  这种方式是让函数在严格模式下执行。

5、语句

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

  var sum = a + b    //即使没有分号也是有效的语句——不推荐

  var str = a - b;     //推荐的书写方式

6、关键字和保留字

  关键字

  break    do    instanceof    typeof    catch    finally

  case      else    new       var       return     void

  continue   for      switch       while      debugger(ECMAScript新增的关键字)

  function    if      this        default     throw    delete

  in      try

  保留字

  abstract  enum  int  short  boolean  export  interface  static  byte  extends  long  super  char

  final    native   synchronized  class     float   package   throws const   goto     private      transient

  debugger implements   protected      volatile  double   import  public 

  第5版非严格模式下

  class  enum  extends  super  const  export  import

  第5版严格模式下

  implements  package  public  interface  private  static  let  protected  yield 

7、变量

  ECMAScript的变量是松散类型的,即,可以用来保存任何类型的数据。

  操作符:  var

  var message;   //如果没有初始化,则会保存一个特殊值——undefined。

  如果在一个函数内部使用var定义一个变量,当函数执行完以后变量就会被销毁,但是如果没有使用var来定义这个变量,则这个变量就是一个全局变量,即,在函数外面也可以访问到这个变量。

JavaScript高级程序设计——学习笔记(基本概念 一)
<script>
  function test() {
    message = 10;  //此时的message就是一个全局变量,这样虽然可以定义全局变量,但是不推荐
  }  
  test();
  document.write(message);  //输出10
</script>
JavaScript高级程序设计——学习笔记(基本概念 一)

8、数据类型

  ECMAScript中有5种基本数据类型:

    Undefined、Null、Number、String、Boolean

  复杂数据类型——Object(本质是由一组无序的名值对组成的)。

9、typeof操作符

  typeof用来检测给定变量的数据类型。

  typeof操作符会返回一些令人迷惑但技术上却正确的值。  ep:typeof null;  //返回的是“Object”,因为特殊值null被认为是一个空的对象引用

10、Undefined类型

  Undefined类型只有一个值,即,特殊的undefined。

  字面值undefined的主要目的是用于比较,在ECMAScript 第3版之前的版本中并没有规定这个,第3版引入这个值(undefined)是为了正式区分空对象指针与未经初始化的变量

11、Null类型

  Null类型也只有一个特殊值,即,null。

  null值表示一个空指针对象。如果定义的变量准备在将来用于保存对象,那么,最好将该变量初始化为null而不是其他值。

var car = null;
document.write(typeof car);  //"Object"

  实质上,undefined值是派生自null值。ep:

document.write(null == undefined);  //true

  虽然null和undefined有这样的关系,但它们的用途完全不同。undefined不用在定义变量的时候显示的将undefined值赋给该变量,但是,null则不一样,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。

12、Boolean类型

  Boolean类型有两个值:true和false。

  Boolean函数可以将任何数据类型转换为Boolean的一个值。但是,至于是true还是false,则要根据以下规则:

    数据类型        转换为true的值        转换为false的值

    Boolean        true             false

    String         任何非空字符串        ""(空字符串)

    Number        任何非零数字值        0和NaN(not a number)

    Object          任何对象             null  

    Undefined       n/a(not applicable的缩写,即,"不适用")       undefined

    ep:

JavaScript高级程序设计——学习笔记(基本概念 一)
<script>
 var message = "hello world";
 if(message) {   //这里自动将message转换为Boolean的值,即,Boolean(message)
    document.write("Value is true");
 }
 document.write(Boolean(message));  //true
</script>
JavaScript高级程序设计——学习笔记(基本概念 一)

 

JavaScript高级程序设计——学习笔记(基本概念 一),布布扣,bubuko.com

JavaScript高级程序设计——学习笔记(基本概念 一)

上一篇:MFC里面多线程的使用


下一篇:Python字符编码详解