一、JavaScript介绍
JavaScript诞生主要是为了完成页面的数据验证,因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码
- 首先,JavaScript是一门单独的语言,与java无关
- 与java是一门强类型的语言不同的是,js(即JavaScript)是一门弱类型的语言
这里所提到的弱类型指的是类型可变,JavaScript不像java是强类型
强类型就是定义变量时,类型已确定且不可变
JavaScript特点:
-
交互性(它可以实现信息的动态交互)
-
安全性(它不允许直接访问本地磁盘)
-
跨平台性(只要是可以解释js的浏览器都可以执行,与平台无关)
二、JavaScript与html代码的结合方式
2.1 第一种方式
只需要在head标签或者是body标签内使用script标签书写JavaScript代码
效果如下:
2.2第二种方式
使用script标签引入单独的JavaScript标签
效果如下
值得注意的是:
script标签可以用来书写JavaScript代码,也可以用来引入JavaScript文件,但是注意这二者只能二选一,不能同时使用两个功能
三、变量
变量是存放某些值的内存的命名
JavaScript的数据类型:
- 数值类型(number):基本与java一样有int,short,long,float,double等
- 字符串类型(string)
- 对象类型(object)
- 布尔类型(boolean)
- 函数类型(function):这里与java不同,JavaScript的变量可以指向一个函数
JavaScript的特殊值:
- undefined 未定义,所以JavaScript的变量在未赋值时,默认都是undefined
- null 空值
- NaN 全称是: Not a number 即非数字、非数值
JavaScript的定义变量格式
var 变量名;
var 变量名 = 值;
这里的typeof函数作用是得到参数的数据类型
四、关系(比较)运算符
JavaScript的关系(比较)运算符与java基本一致,都有> >= < <= !=这里不再赘述
值得注意的是下面这两个运算符
- 等于 == 等于是简单地做字面值的比较
- 全等于 === 全等于除了做字面值的比较外,还做数据类型的比较
五、逻辑运算符
这里是与之前所学的java不同的,要注意
六、数组
这里只对JavaScript与java不同的地方进行强调
- JavaScript的数组,只要我们通过数组下标进行赋值,那么最大的下标值,就会自动地给数组做扩容操作
- 数组的遍历初始化时要使用var定义
七、函数
1.使用function关键字定义函数
-
函数定义时如果有参数,我们无需写类型,给出有多少个参数即可
-
函数若需要返回,直接使用return即可
-
JavaScript中不允许重载,如果写了两个一样的函数那么第二个函数将覆盖第一个函数的定义!!!
-
直接进行演示:
2.将函数赋给var
3. 函数的隐形参数arguments(只在function函数内)
隐形参数即 在function函数中不需要定义,但却可以直接用来获取所有参数的变量
- 隐形参数与java基础的可变长参数一样(public void fun(Object...args);),它实际上是一个数组,因此对其操作类似操作数组
下面进行演示(需求是编写一个函数可以计算传入参数之和)
这里没有说明传入有几个参数,所以使用隐形参数
八、自定义对象
1.object形式的自定义对象
2.花括号形式的自定义对象
注意冒号和逗号的使用
九、js中的事件
什么是事件?事件是电脑输入设备与页面进行交互的响应,我们称之为事件
常用的事件如下:
-
onload加载完成事件; 页面加载完成后,常用于做页面js代码初始化操作
-
onclick单击事件; 常用于按钮的点击响应操作
-
onblur失去焦点事件; 常用于输入框失去焦点后验证其输入内容是否合法
-
onchange内容发生改变事件; 常用于下拉列表与输入框内容发生改变后操作
-
onsubmit表单提交事件; 常用于表单提交前,验证所有表单项是否合法
1.事件的注册(绑定)
什么是事件的注册(绑定)?
其实就是告诉浏览器,当事件响应后要执行哪些操作代码,叫事件注册或事件绑定
而事件的注册(绑定)又分为静态注册或动态注册
1.1事件的静态注册
- 通过HTML标签的事件属性直接赋予事件响应后的代码,这种方式我们叫静态注册
1.2事件的动态注册
- 是指先通过js代码得到标签的dom对象,然后再通过 对象.事件名 = function(){}
这种形式赋予事件响应后的代码,叫动态注册
动态注册的基本步骤如下:
1)获取标签对象
2)标签对象.对象名=function(){}
2. onload事件
- onload通常写在body标签上
3. onclick事件
4. onblur事件
效果如下:
5.onchange事件
6.onsubmit事件
值得注意的是在静态注册时我们在调用函数前需要有一个return
十、DOM模型
DOM全称 Document Object Model 文档对象模型
简而言之就是 我们把文档(即一个html页面)中的标签、属性、文本转换成对象来管理
1. Document对象(表示整个html页面)
理解:
- Document管理了所有的html文档内容
- Document是一种树状结构的文档,有层级关系
- 它让我们把所有的标签都 对象化
- 我们可以通过Document访问所有的标签对象
例如下面这个例子演示对象化:
2.getElementById方法
我们直接通过案例进行演示:
需求:当用户点击“校验”按钮时,获取输入框的内容,验证其是否合法(规则是由字母或数字或下划线组成且长度为5—12)
这里使用到了正则表达式(可参考JavaScript RegExp 对象)
下面是另外两种常见的验证提示
注意这里的innerHTML是我们所得到的dom对象的一个属性,该属性可读可写
3.getElementsByName方法
依旧直接看案例
我们这里希望实现如下三个功能:
这里的我们得到的dom对象同样是可以操作对应标签的属性如checked属性
且得到的集合的操作与数组一样,集合中都是dom对象,元素顺序是它们在html页面中从上到下的顺序
4.getElementsByTagName方法
该方法与方法3大同小异,只是该方法利用的是标签名来确定得到哪些dom对象而已
5.三种查询方法的使用注意事项
6. createElement方法与appendChild方法
下面我们进行演示(需求是使用js为body标签添加一个子节点div标签)
注意:这里我们必须使用window.onload=function(){}保证里面代码在页面加载完成后再执行,否则会出现body对象为空的错误