JavaScript归纳
1.目的
实现网页的动态效果.在页面上进行数据的校验,减轻服务器端承受的压力.
2.性质
基于浏览器运行.
是一种弱类型语言.无论是变量类型还是引用类型都用var表示.
是一种面向对象的编程语言.
是一种解释型语言.直接在浏览器上自上而下解释运行.
3.基础认知
3.1数据类型
number 数字类型
String 字符串类型
boolean 布尔类型
object 对象类型
3.2变量
var
3.3特殊值
undefined:所定义的类型没有赋值.比如数组里的元素分配好空间之后没有赋值.那么该处的值就是undefined
NaN 非数.判断所使用的数据的类型是不是数字.如果不是数字,那么就判断是非数.如果强行将非数字内容当做数字使用也会出现非数的情况
null 空.一般用于赋值的时候给一个null.这样的话可以用来清空变量
3.4运算符
和java基本无异:+ - * / %; > < >= <= == && ||
三元运算符:boolean表达式?值1:值2
3.4流程控制
与java基本无异.
唯一注意的就是弱类型问题.
4.函数
4.1函数的自定义:具体形式
function 函数名(参数值1,参数值2,...){ 函数体 return 返回值;}
var 函数名 = function(参数表){函数体}
var 变量名 = new function(){"参数1","参数2",..,"函数体"};
[函数也是一个值.能当成变量处理的就是一个值.所谓的函数就是类似于英语中一个从句去指向what that之类的.这里面函数的结果去指向一个var变量.那么var变量就是一个值]
4.2内置函数
prasetInt(值) 将值转化为整数
typeof(值) 判断值的数据类型
isNaN(值) 判断值是不是非数
4.3注意事项
函数无重载
只有一个局部变量arguments[保存了函数被调用时传进来的参数]
5.数组
通用形式
eg:var charsequence = [];
var cs = [1,2,3];
注意事项
元素类型不受限制,长度可变,未赋值的下标的对应部分是undefined
遍历方式:参照java和注意弱类型
排序方式[仅供参照]:sort(function(a,b){return a-b;})
访问方式:数组变量名[下标]
6.对象
通用形式:
eg:var person = {
"属性名":"属性",
"函数名":function(){},
"数组名":[..]
}
var per = {}
注意事项:
访问方式:对象.属性或者对象["属性名"],对象.函数名()
this表示当前对象本身
遍历对象中的所有属性
遍历方式:for-each(var v in 对象){}
没有对象的模板
7.事件编程
7.1步骤
事件对象身上发生了什么事[事件源],触发了事件监听器
标签里:事件监听器等于一个function eg:onclick="test1()"
7.1.1常见事件
鼠标相关
onclick 单击事件
ondblclick 双击事件
onmouseover 鼠标移入
onmouseout 鼠标移出
onmousemove 鼠标移动
onmousedown 鼠标按下
onmouseup 鼠标松开
body相关事件
onKeyDown 键盘按键按下
onKeyUp 键盘按键抬起
onload = fun//页面加载完毕触发[重要]
onunload 窗口离开时触发(刷新,返回,前进,主页...)
onscroll 页面滚动 [应用: ]
onresize 缩放页面
form表单控件相关事件[最重要]
onblur 当前元素失去焦点 <input>
onchange 当前元素失去焦点,并且值改变时 <input>
onfocus 当前元素获得焦点时 <input>
onsubmit 表单提交时 form标签
常见注意事项
绑定的时候有一个局部变量:event 用event.target可以找到事件源 .keyCode可以找到触发的按键,.type可以获取事件的名称.stopstopPropagation可以停止冒泡,.ccancleBubble可以取消冒泡
7.2DOM编程[网页对象模型]
浏览器内部是一个document对象,标签是子节点的数形式往下延伸出来的.写好的js代码先进入dom解析器再编译成document对象
绑定dom->访问dom的属性->常见dom方法
getElementBy id["id"]/TagName["标签名"]/ClassName["class值"]
.innerText/innerHtml/select options /selectIndex/options.length=0(清空下拉列表)
7.2.1常见的dom操作
dom对象.parentNode 访问Dom对象的亲爹(直接父标签)
dom对象.nextSibling 直接弟弟标签(可能有空白节点)
dom对象.previosSibling 直接哥哥标签(可能有空白节点)
dom对象.childNodes dom对象的所有儿子标签dom对象。(包含空白部分)
7.3浏览器dui对象模型BOM
window.调用
alert("提示文字")
conconfirm("提示确定的文字")
setInterval(周期性调用的函数)
history调用
.go(1,0,-1)前进刷新和后退
location调用
.href="url"调用
8js代码的复用
独立创建js文件
在需要使用写过的js代码的时候调用
<script src="外部js文件的路径" type="text/javascript"></script>