zitangkou

1、概要

  1.1、变量表示值的一个符号名字

//变量通过var关键字声明
var x;   //声明一个变量

//赋值
x = 0;

//多种数据类型
x = 5;
x = 0.2;   //整数和浮点数共用一种类型
x = "Hello";   //双引号字符串
x = \'World\';   //单引号字符串
x = true;   //布尔值
x = false;
x = null;   //空值
x = undefined;   //未定义值

1.2、对象类型

//对象是键值对集合
var book = {    //对象由花括号
  topic: "Javascript",   //属性 topic 的值为字符串 "Javascript"
  fat: true    //多个属性,逗号分隔
};
//通过.或[]访问对象属性
book.topic; //=>"Javascript"
book["fat"];
//通过赋值创建一个新的属性
book.author = "Flang";
//属性的值为另一个对象
book.content = {};   //{}表示空对象

1.3、数组类型
  var array = [1, 2, 3, 4];    //四个值的数组,[]划定边界
  array[0];    //=>1,数组第一个值
  array.length;    //=>4,数组长度
  array[4] = 5;    //赋值添加新元素和改变元素值
  var empty = [];    //空数组

1.4、数组和对象中都可包含其它数组和对象

var points = {
  point1 : { x: 0, y:1 },
  point2 : { x: 1, y:0 }   //对象的属性是一个对象
};
var data = {
  a1: [[1, 2], [3, 4]],   //对象属性是一个数组
  a2: [[5, 6], [7, 8]]   //数组中的元素也是数组
}

1.5、表达式运算

3 + 2;   //=>5,加
5 - 3;   //=>2,减
2 * 3;   //=>6,乘
3 / 2;   //=>1.5,除
"3" + "2";   //字符串连接
var count;
count++;   //自增
count--;   //自减
count += 2;   //自增2
count *= 2;   //自乘
//比较运算符  
var x = 3, y = 3;
x == y;    //相等
x != y;    //不等
x < y;    //=>false,都返回布尔值
x <= y;
x > y;
x >= y;
"two" == "three";   //字符串相等
"two" > "three";   //tw在字母表中的索引顺序大于th
//逻辑运算符
(x == 3) && (y == 2);   //与运算
(x < y) || (x > y);    //或运算
!(x == y);    //非运算

1.6、函数,一次定义多次调用
  function plus1(num) {
    return num + 1;
  }
  plus1(2); //=>3
  //当函数用来操作对象属性时,称之为”方法“
  var aa = [];
  aa.push(1, 2, 3);   //push()方法向数组中添加元素
  aa.reverse();    //反转数组元素

//对象定义自己的方法,方法内使用this作为对象本身的引用
var one = {
  p1: { x: 2, y: 3 },
  p2: {x: 4, y: 5}
}
one.count = function () {
  var r1 = this["p1"];   //this代表one对象
  var r2 = this["p2"];   //提取对象中对象
  //计算两点之间的距离
  var a = r1.x - r2.x;
  var b = r1.y - r2.y;
  return Math.sqrt(a*a + b*b);   //调用Math.sqrt()方法计算平方根
}
one.count(); //=>2.828

//JavaScript是一种面向对象的语言,但又与面向对象语言有所不同
//定义一个构造函数
function Point(x, y) {
  this.x = x;
  this.y = y;
}
//new关键字创建一个实例
var p1 = new Point(1, 2);
  //通过构造函数的protoype对象赋值,构造方法
  Point.prototype.r = function () {
  return Math.sqrt(this.x * this.x + this.y * this.y);
}
//返回x^2 + y^2的平方根
p1.r();

  1.7、三个重要核心定义类

    日期(Date)类定义了代表日期的对象。

    正则(RegExp)类定义了表达了正则表达式的对象。

    错误(Error)类定义了JavaScript程序运行时的错误和异常对象。

  1.8、内存管理机制,JavaScript有自己的内存管理机制,当不再有引用指向对象时,自动回收内存资源,程序员不需要担心对象的销毁和内存回收。

  1.9、JavaScript变量是无类型的,变量可以被赋予任何类型的值,JavaScript采用词法作用域,不在任何函数内定义的变量成为全局变量,函数内部声明的变量具有函数作用域。    

2、字符集

  JavaScript语言区分大小写,变量名、关键字、函数名和所有标识符都必须采取一致的大小写形式,如关键字while、online等必须保持小写形式。

  需要注意的是,HTML并不区分大小写,许多标签和属性名可以是大写或小写,在JavaScript必须是小写,如onclick等。

3、注释

  //  单行注释

  /*  多行注释 

  *  注释

  */

4、标识符和保留字

  标识符用来对变量和函数进行命名,或者用作JavaScript代码中某些循环语句中的跳转位置的标记,必须以字母、下划线和美元符开始。

  JavaScript把一些标识符作为关键字,不可以用作标识符,列举如下:

  基本关键字

  

  Java关键字

  

  JavaScript预定义全局变量和函数

  

5、换行处分号填补

  和其他许多语言一样,JavaScript使用分号(;)将语句分隔开,在JavaScript中也可以省略分号,换行使会自动填补分号。

  var a

  a

    =

    3

    console.log(a);

  注意的是,并不是所有换行都会填补分号,只有在缺少了分号而无法正常解析代码时,JavaScript才会填补分号,上述列子解析后为:var a; a = 3; console.log(a); 。

 

分类:

技术点:

相关文章: