1、javascript基础
(1)javascript是什么,能做什么?
是网景公司开发的一种用于与页面进行交互的脚本语言。
javascript程序在浏览器端执行
javascript程序可以写在.js结尾的文件里。
作用:
a、前端验证(就是对用户提交的表单中的数据进行验证,比如验证用户名是否为空,如果验证不通过,
则浏览器不会将数据提交给服务器)
b、ajax核心技术之一,用于异步向服务器发送请求并动态更新页面。
c、与页面进行交互,生成动态的效果。
d、获得浏览器相关的信息。
(2)javascript的组成部分
ECMAScript:语法基础(已经标准化了)
DOM:文档对象模型(部分标准化了)
BOM:浏览器对象模型(没有标准化,但是大部分浏览器都支持window,location,history,screen等对象)
2、语法基础:
(1)数据类型:
a、基本数据类型
number:数字类型
string:字符串
boolean:布尔类型
null:变量没有存放任何对象的地址
undefined:未定义 alert(a);
(2)变量
javascript是一种弱类型语言,变量的类型在运行时确认,并且可以随时转换。
javascript大小写敏感。
标识符不能使用关键字和保留字
标识符首字母只能是A$_开头,在首字母以外可以包含数字。
变量的作用域:
在函数内部,不适用var声明的变量是一个全局变量,没有语句块作用域
(3)数组
js中的数组长度可变,存放的数据类型可以是任意的
var arr = new Array();
arr[0] =1;
arr[1] =2;
alert(arr.lenght);
var arr = [1,2];
c、数组对象的常用方法和属性
length属性返回数组的长度
toString()方法,返回数组的字符串表示
concat方法,用于连接两个数组
join方法,用于将数组中的各个元素连接成字符串
reverse方法,将数组反转
slice用于截取数组的一部分并以数组的形式放回
sort()排序,可通过如下形式来重新定义排序方法
var arr4 = arr3.sort(function(a1,a2)){
return -a1.length+a2.length;
}
d、数组可以当做堆栈和队列来使用
push();
pop();
shit();
(4)字符串的常用方法和属性
length属性 返回字符串的长度
charAt(index) 返回指定位置的字符
substring(from,to) 返回子字符串
indexOf(str) 指定字符串在原字符串中第一次出现
lastIndexOf(str) 指定字符串在原字符串中最后一次 出现的位置
match(regexp) 返回匹配指定正则表达式的字符串 ,返回的结果是一个数组
search(regexp) 返回按照正则表达式检索到的字符串位置
toLowerCase/toUpperCase 返回大小写形式
replace(regexp,'abc') 替换符合reg正则表达式规则的字符串
split(','):分解,返回的是一个数组
3、DOM(Document Object Model)
(1)什么是dom?
定义了一套规则,由于将结构化的文档(XML、HTML)转化为一棵树,目的是为了便于对结构化的文档
进行增删改查操作。
(2)由于历史原因,dom没有完全标准化
html dom模型:最早的dom模型
w3c dom模型:主流,各大浏览器基本都支持编程时,都可以使用
(3)w3c dom模型:
查找:
方式1:使用id
document.getElementById()
有个方法:.innerHTML:标签之间的html代码
如:obj2.innerHTML='用户名必须填写';
方式2:遍历(浏览器不兼容)
parentNode
previousSibling
nextSibling
childNodes
firstChild
lastChild
getElementsByTagName(tagName):一句标签名,查找标签点
创建
document.createElement(tagName)
document.createTextNode(text):用的很少,因为有innerHTML了
添加
appendChild
insertBefore
replaceChild
举例:
var obj = document.getElementById('id');
obj.appendChild(newNode);
作为obj的子节点添加到末尾。
obj.insertBefore(newNode,refNode);
添加到refNode之前
obj.replaceChild(newNode,refNode);
使用newNode替换refNode
删除
removeChild
样式操作:
方式一,通过设置className属性
方式二,通过修改style属性:
<div id="d1" style=" "></div>
var obj = document.getElementById('d1');
css属性名如果有“-”,则去掉“-”号,第一个字母大写,比如background-color变成backgroundColor
obj.style.backgroundColor='red';
(4)html dom
html dom只有有限的几个节点类型,另外,不能遍历。
查找要使用document.getElementById
a、select对象
属性:
selectIndex:用户选中的下标的序号(下标从0开始)
options:是一个数组,表示所有选项。每一个数组元素是一个option对象。
b、option对象
属性:
value:option的值
text:option标记之间的文本
selected:true/false值为true表示选项被选中
如何创建一个option对象:
var op = new Option(text,value);
c、table对象
rows属性
返回表格中所有行的一个数组。
该集合包括<thead> <tfoot>和<tbody>中定义的所有行。
tBodies属性
返回包含表格中所有tbody的一个数组
tFoot属性
返回表格的TFoot对象
tHead属性
返回表格的THead对象。
方法:
insertRow(index):
var row = insertRow(index);index从0开始
在表格中的指定位置插入一个新行。
返回一个TableRow,表示新插入的行。
deleteRow(index)方法:
从表格删除指定位置的行。
d、TableRow对象
属性:
cells :
返回包含行中所有单元格的一个数组
rowIndex属性:
返回该行在表中的位置。
方法:
deleteCell(index):
用于删除表格行中的单元格(<td>元素)
insertCell(index);
方法用于在html表的一行的指定位置插入一个空的<td>元素。返回值是一个TableCell对象
e、form对象
属性:
action:
method:
elements:返回form中所有的节点,是一个数组
方法:
submit():提交表单,会绕过表单验证。
reset():重置表单
(5)浏览器对某些html标记产生的事件,有默认的行为比如点击链接,会跳到href指定的地址。
表单,当点击提交按钮,会将表单的数据提交给服务器。有些时候,需要禁止默认行为。
<a href="abc.do" onclick="return false;">test</a>
<form onsubmit="return false;">