javascript基础笔记
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 >