① JavaScript 语言诞生主要是完成页面的数据验证。
因此它运行在客户端,需要运行浏览器来解析执行
JavaScript代码。
② JS 是 Netscape 网景公司的产品,最早取名为
LiveScript;为了吸引更多Java程序员。
更名为JavasScript。
JS 是弱类型,Java 是强类型。
弱类型:类型可变
强类型:定义变量的时候,类型已确定,而且不可变
特点:
1.交互性 (信息的动态交互)
2.安全性 (不允许直接访问本地硬盘)
3.跨平台性 (只要是可以解释JS的浏览器
都可以执行,和平台无关)
一、JS 和 html 代码的结合方式
1.只需要在head标签中,或者在body标签中,使用script标签来书写 Javascript 代码。
2.使用script标签引入 单独的JavaScript代码文件
二、JS变量
变量是可以存放某些值的内存的命名。
数值类型 | number |
字符串类型 | string |
对象类型 | object |
布尔类型 | boolean |
函数类型 | function |
underfined | 未定义,所有js变量未赋予初始值的时候 默认值都是underfined. |
null | 空值 |
NAN | 全称是:Not a Number。非字数。非数值 |
Js中的定义变量格式:
var 变量名;
var 变量名=值;
三、JS关系(比较)运算
等于: == 等于是简单的做字面值的比较
全等于: === 除了做字面值的比较之外,还
会比较两个变量的数据类型
四、JS逻辑运算
在JavaScript语言中,所有的变量,都可以做为一个boolean类型的变量去使用。
0、null、undefined、""(空串) 都认为是 false;
1. && 且运算
有两种情况:
a.当表达式全为真的时候,返回最后一个表达式的值。
b.当表达式中,有一个为假的时候,返回第一个为假的表达式的值。
2. || 或运算
有两种情况:
a.当表达式全为假的时候,返回最后一个表达式的值。
b.只要表达式有一个为真的时候,返回第一个为真的表达式的值。
五、JS数组
JS中数组的定义
格式:
var 数组名 = []; // 空数组
var 数组名 = [1,'abc',true]; // 定义数组同时赋值元素
JS语言中的数组,只要我们通过数组下标赋值,那么最大的下标值,就会自动的给数组做扩容操作
六、JS函数
函数的两种定义方式
1.用 function 关键字来定义函数
function 函数名(形参列表){
函数体;
}
在JavaScript语言中,定义带有返回值的函数,只需要在函数体内直接使用return语句
返回值即可。
2. 第二种定义格式
var 函数名 = function(形参列表) {
函数体;
}
注:在Java中函数允许重载,但是在JS中函数的重载会直接覆盖掉上一次的定义。
3.函数的 arguments 隐形参数(只在function函数内)
① 就是在 function 函数中不需要定义,但却可以直接
用来获取所有参数的变量。我们管他叫隐形参数。
隐形参数特别像Java基础的可变长参数一样。
public void fun (Object...args);
② 可变长参数其实是一个数组。
那么JS中的隐形参数也跟Java的可变长参数一样,
操作类似数组。
七、JS中的自定义对象
1. Object 形式的自定义对象
(1)对象的定义:
var 变量名 =new Object(); // 对象实例 (空对象)
变量名.属性名=值; //定义一个属性
变量名.函数名=function() {} //定义一个函数
(2)对象的访问:
变量名.属性名 / 函数名();
2. {} 花括号形式的自定义对象
(1)对象的定义:
var 变量名={ //空对象
属性名:值, //定义一个属性
属性名:值, //定义一个属性
函数名:function(){} //定义一个函数
};
(2)对象的访问:
变量名.属性名 / 函数名();
八、 JS中的事件
1.定义:
事件是电脑输入设备与页面进行交互的响应。
onload | 加载完成事件 |
onclick | 单击事件 |
onblur | 失去焦点事件 |
onchange | 内容发生改变事件 |
onsubmit | 表单提交事件 |
onload:页面加载完成之后,常用于做页面js代码初始化操作
onclick:常用于按钮的点击响应操作
onblur:常用于输入框失去焦点后验证其输入内容是否合法
onchange:常用于下拉列表和输入框内容发生改变后操作
onsubmit:常用于表单提交前,验证所有表单项是否合法
2.事件的注册(绑定)
就是告诉服务器,当事件响应后要执行哪些操作代码
(1) 静态注册事件
通过html标签的事件属性直接赋予事件响应后的代码
(2) 动态注册事件
先通过js代码得到标签的 dom 对象,然后再通过 dom 对象.事件名=function(){}
这种形式赋予事件响应后的代码
动态注册基本步骤:
a.获取标签对象
b.标签对象.事件名=function(){}
九、DOM模型
DOM 全称是 Document Object Model 文档对象模型
(就是把文档中的标签、属性、文本,转换成对象来管理)
1. Document 对象
Document 对象的理解:
a. Document 它管理了所有的Html文档内容
b. document 它是一种树结构的文档,有层级关系
c. 它让我们把所有的标签都对象化
d. 我们可以通过document访问所有的标签对象
2.DOM方法
document.getElementById(elementId)
通过标签的 id 属性查找标签 dom 对象,elementId是标签的 id 属性
document.getElementByName(elementName)
通过标签的 name 属性查找标签 dom 对象,elementId是标签的 name 属性
document.getElementByTagName(tagname)
通过标签名查找标签 dom 对象,tagname 是标签名
document.createElement(tagname)
通过给定的标签名,创建一个标签对象,tagname 是要创建的标签名
3.正则表达式 (RegExp)
① 正则表达式是描述字符模式的对象
② 正则表达式用于对字符串模式匹配及检索替换,
是对字符串执行模式匹配的强大工具
语法:
var patt=new Dom(pattern,modifiers);
或者
var patt=/pattern/modifiers;
pattern(模式) 描述了表达式的模式
modifiers(修饰符) 用于指定全局匹配、区分
大小写的匹配和多行匹配
4. document 对象三个查询方法选择顺序
document 对象的三个查询方法
① 如果有 id 属性,优先使用 getElementById
方法来进行查询
② 如果没有 id 属性,则优先使用
getElementsByName
③ 如果 id 属性和 name 属性都没有,
才按 getElementByTagName
5. 节点的常用属性和方法
节点就是标签对象
方法:
① 通过具体的元素节点调用
getElementsByTagName() 方法,
获取当前节点的指定标签名孩子节点
appendChild( oChildNode) 方法,
可以添加一个子节点,oChildNode 是
要添加的孩子节点
属性:
childNodes 属性,获取当前节点的所有子节点
firstChild 属性,获取当前节点的第一个子节点
lastChild 属性,获取当前节点的最后一个子节点
parentNode 属性,获取当前节点的父节点
nextSibling 属性,获取当前节点的下一节点
previousSibling 属性,获取当前节点的上一个节点
className 属性,用于获取或设置标签的 class 属性值
innerHTML 属性,表示获取/设置起始标签和结束标签中的内容
innerText 属性,表示获取/设置起始标签和结束标签中的文本