日期:2014-05-16  浏览次数:20328 次

JavaScript笔记(1)
JavaScript 是一种具有 面向对象能力的,解释性 的程序设计语言。
             基于对象事件驱动 并具有相对安全性的 客服端脚本语言。

一个完整的JavaScript,由三个部分组成:
1.ECMAScript(核心);
2.DOM(文档对象模型);
3.BOM(浏览器对象模型)。


注意:引用js,不能写成<script type="text/javascript" src="demo.js" />
      必须是<script type="text/javascript" src="demo.js"></script>

现在浏览器都支持javaScript,若浏览器没启用JavaScript或被禁用,则
<noscript>您没有启用JavaScript!</noscript>

语法:
ECMAScript: 提供核心的语言功能,规范语法。
1.书写区分大小写;

2.用var关键字定义变量;

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

4.字面量:
  复杂数据类型Object,由一组无序的名值对组成。/ 对象字面量
  创建Object类型的实例的两种方式:
  var person = new Object(); 
  person.name = "XX";
  或var person = {'name' : "XX",age:22};
  给对象创建方法:
  var box = {
   run : function () {//对象中的方法
    return '运行';
   }
  }
  alert(box.run());

  Array类型,
  创建Array类型的两种方式: / 数组字面量
  var arr = new Array(args);
  或var arr = ["1", "2", "3"];
  常见实用方法(熟悉)
  栈方法: arr.push('4');//接收任意数量的参数,把它们逐个添加到数组的末尾
            arr.pop();//从数组末尾移除最后一个元素
  队列方法: arr.shift(); //移除数组开头元素,并返回移除的元素
             arr.unshift('-1','0')); //数组开头添加两个元素
  重排序方法: arr.reverse(); //逆向排序方法
               arr.sort(); //从小到大排序
  基于当前数组,新创建的数组操作方法:
  var arr2 = arr.concat('A');//创建新数组,并添加新元素
  var arr2 = arr.slice(1,3);//获取指定区域元素
  var arr2 = arr.splice(0,2); //截取前两个元素
  var arr2 = arr.splice(1,0,'B,'C'); //没有截取,但插入了两条
  var arr2 = arr.splice(1,1,100); //截取了第 2 条,替换成 100

5.数据类型:Undefined,Object,Null,Boolean,String,Number
注意:不要做浮点数值的运算。

6.typeof操作符:用来检测变量的数据类型。alert(typeof 变量);
  例: var box; alert(box);
  //box是Undefined类型,值是undefined,返回的字符串是undefined。
  对象和Null 数据类型,返回的字符串是object。

7.函数 - arguments对象
  函数体内可以通过arguments对象来接收传递进来的参数,
  function box() {
    return arguments[0]+' | '+arguments[1]; //得到每次参数的值
  }
  alert(box(1,2,3,4,5,6)); //传递参数

  arguments 对象的 length 属性可以得到参数的数量。
  function box() {
    return arguments.length; //得到 6
  }
  alert(box(1,2,3,4,5,6));

  智能的判断有多少参数,要实现一个加法运算,将所有传进来的数字累加,而数字的个数 又不确定。
  function box() {
  var sum = 0;
  if (arguments.length == 0) return sum; //如果没有参数,退出
  for(var i = 0;i < arguments.length; i++) { //如果有,就累加
    sum = sum + arguments[i];
  }
  return sum; //返回累加结果
  }
  alert(box(5,9,12));