[TOC]

day02_JavaScript

1. JavaScript【Js】简介

1.1 Js概述

  • JavaScript是一门基于对象和事件驱动的客户端脚本语言

1.2 Js特性

  • 解释型语言:边解释边执行
  • 面向对象
  • 弱类型语言:对数据类型要求较弱,如声明变量时使用var代词
  • 动态类型语言:如变量在运行期间可以任意赋值【数据类型】

1.3 Js构成

  • ECMAScript:ECMAScript是一个标准,而这需要由各厂商去实现。
  • DOM:Document Object Model【文档对象模型】JS 中通过 DOM来对 HTML 文档进行操作。只要理解了DOM就可以随心所欲的操作 WEB 页面。
  • BOM:Browser Object Model【浏览器对象模型】

2. JavaScript基本语法

2.1 变量

  • 使用var声明变量
  • 使用typeof()验证变量的数据类型

2.2 数据类型

  • 基本数据类型

    • number
    • string
    • boolean
    • null
    • undefined【未定义:只声明未赋值】
  • 对象类型

    • 数组
    • 函数
    • 一般对象

2.3 运算符

  • 算术运算符:+ - * / % ++ — += -+ …

  • 逻辑运算符:&& || !

  • 三元运算符:【?:】

  • 赋值运算符:=

  • 关系【比较】运算符:> < >= <= != == 【=或!】

    • == 与 ===【全等】 区别
      ==:比较两个变量的数值是否相等
      ===:比较两个变量是否全等【数值且数据类型相等】

    • !==【不全等】,不全等主要有以下两种情况

      • 数值不等
      • 数据类型不等

2.4 流程控制【过:与Java中一致】

2.5 Js中数组

  • 定义数组

    • var arr = [“zs”,1,true];
    • var arr2 = new Array(“zs”,1,true);
  • 调用数组

    • arr[index]
  • 注意:

    • js的数组中可以存储任意数据【数据类型】
    • js的数组是自动扩容

3. JavaScript中的函数

3.1 定义函数

  • 定义普通函数:function 函数名([形参列表]){}
  • 定义匿名函数:function([形参列表]){}

3.2 调用函数

  • js中调用函数时,不检查形参与实参匹配情况。

  • 实参>形参【add()】

    • 自定忽略多余参数
  • 实参<形参【add()】

    • 实参数据类型:number

      • 结果:NaN【not a number】,计算结果不是一个数值。
    • 实参数据类型:string

      • 结果:实参值+undefined
  • js函数中存在隐式对象arguments,类似java中可变形参

    • function add(i,j){
      alert(arguments[2]);
      return (i+j);
      }
      alert(add(2,1,300));
      
  • 匿名函数调用

    • ```javascript //匿名函数 var fun = function (i,j){ alert(“匿名函数,i:”+i); } fun(1,2);

//为btnId关联单击事件 btnEle.onclick = function(){ //提示框 alert(“Hello JS!”); }




<a name="163c2bae"></a>
#### 3.3 js中不存在函数重载及重写问题

- 在js中后面同名函数会覆盖前面同名函数

<a name="4cac13b6"></a>
#### 3.4 函数调用注意事项【函数名与函数名()区别】

- 函数名:使用的函数的引用
- 函数名():执行【触发】当前函数

<a name="1ae9f87d"></a>
### 4. Js中的对象

<a name="ec053c23"></a>
#### 4.1 数组是对象

<a name="065eee4c"></a>
#### 4.2 函数也是对象

<a name="62c23ecf"></a>
#### 4.3 一般对象

- 
对象创建&使用

   - 
方式一:var obj = new Object()

      - 
代码
```javascript
//方式一
var stu = new Object();
stu.name = "jiale";
stu.age = 23;
stu.study = function(){
    alert(this.name+"正在学习,....");
}
alert(stu.age);
stu.study();
  • 方式二:var obj2 = {“key1”:value,”key2”:value2,…}; //json对象

    • json对象的key建议使用string类型,json对象的value是js中支持的数据类型即可。

    • 代码

      //方式二
      var stu = {
      "stuName":"caixukun",
      "stuAge":22,
      "study":function(){
      alert(this.stuName+"is studing...");
      }
      };
      alert(stu.stuAge);
      stu.study();
      
  • this关键字指向的是调用当前函数的对象。

4.4 js中自带对象

  • JavaScript内置对象

    • Array 、Date、Math、……
  • 浏览器对象

    • window:浏览器对象模型中的核心对象

    • location:控制URL【地址栏】的对象【取值赋值】

      • location = "http://www.baidu.com";
        // location.href = "http://www.baidu.com";
        
  • URL:统一资源定位符
  • dom对象

    • document、body、button……

5. Js中常用事件

  • onload:加载事件
  • onclick:单击事件
  • onchange:文本改变且失去焦点事件
  • onsubmit:表单提交事件
  • onblur:失去焦点事件

6. Js嵌入方式【书写位置】

  • 行内js:结构与行为相耦合,不建议使用。
    <button id="btnId" onclick="alert('hello js');">SayHello</button>
    
  • 内部js:书写在