javascript总结
来源:互联网 发布:js设置radio不可选 编辑:程序博客网 时间:2024/05/23 11:05
编程处理页面:
客户端代码:动态效果、动态的安排页面元素等-----代码的运行由浏览器搞定
服务器端代码:提交-----由服务器解决
页面脚本代码:嵌入页面上,由浏览器运行---JavaScript、vbScript
一、JavaScript概述
1、什么是JavaScript:一种基于对象和事件驱动的解释性语言,嵌入在页面上,有浏览器运行
2、历史和特征:JS---和 JAVA 没有关系
CoreJAVA:面向对象、编译性
js:语法上类似 java,不一样的地方
3、怎么写js 代码 ***
a、代码和事件关联:代码直接写在事件里
b、script块:head里添加一个script,中间添加代码(以方法封装)
c、js文件:单独定义一个js文件,在html页面的head里用script 引入
二:基础语法:
1、语法规范:大小写敏感,以;表示结束
2、变量***
var sss="hello";
alert(sss);
var n=12;
var b=ture;
--使用var声明变量,变量的类型以赋值为准
3、标示符的规则
--一字母,数字,下划线,$组成,不以数字开头 不能与关键字重名
4、数据类型
简单类型:string、number、bool
特殊类型:null、undefined
复杂类型:Array,Date等
5、string类型:
a、‘’ 或“”但要匹配
b、特殊字符:'' ""转义\' \" \n
6、number类型
var n=123;
var n1=12.23;
7、bool类型:
var b=true/false --1/0
8、数据类型之间的转换***
a、隐式转换:直接转,按照规则:
string+number=string
string+bool=string/true
number+bool=number
bool+bool=number
能加则加,不能加则转
b、显示转换:使用响应的方法转换
xxx.toString();
parseInt(xxx);
paseFloat(xx);
typeof(xxx);
9、运算符;
a、算术、比较、逻辑 。。。
b/**
a==b:值。可能发生隐式类型转换
a===b:严格相等,值以及类型
c/三目运算 表达式?value1:value2;
10、流程控制
if/else、switch/case for while
eg:
var sum=0;
for(var i=1;i<100;i++){
sum=sum+i;
}
三:常用的内置对象
1、对象:封装功能、使用(创建,属性,方法)
2、string对象:提供了可以操作字符串的方法
创建:var s="sasd";
var s1=new String("a");--String S大写
属性:s.length
方法:toUpperCase/toLowerCase() subString()
indexOf/lastIndex() charAt() splite()
replace()/match()/search();--结合正则表达式应用 match匹配,返回数组,search返回匹配结果的下标
正则表达式:g:全局 i:忽略大小写 m:多行
3、数组
var name="mary";多个人的姓名则需要使用数组来存储了
创建:var a=new Array();
a[0]="aa"
a[1]=12;
a[2]=true;
或:
var a=new Array("aa",12,true);
或
var a=new Array("aa",12,true);
a[3]=34;
二维数组
a[0]={"aa","bb"}
属性:a.length()
方法:对数组的操作灵活
a.toString()--数组的内容以“,”连接输出
a.join("|");--以“1”字符连接输出
a.concat(b);--小数组相加
a.slice(start,end)--截取子数组
a.reverse();--反向数组
a.sort();--默认按照字符串比较
4.Math对象
用:Math.xxx
属性:Math.pi
方法:Math.abs/round/rand/floor/ceil()...
random()--->=0 <1的随机的小数
5、Number 对象
var n=12.3578;
n.toFixed(2);--保留小数点n位
6、正则表达式对象
应用一:结合string对象的方法,直接对字符串进行操作
应用二:验证
var r=/[a-z]{3,5}/;--正则表达式对象
r.test(str);--true/false
7、Date对象:日期和时间
创建:
var b=new Date();当前
var b=new Date(2013-12-12);
方法:
getXXX();getMonth()--获得日期中的各详细信息
setXXX();setMonth()
toXXX();toString()--转换为字符串,格式有浏览器决定
toXXX():toString()---转换为字符串,格式由浏览器决定
8、方法
a、定义: function name(x,y)
{
//方法体
return xxx;
}
b、调用
var r = name(10,20);
c、变量:局部变量、全局变量
d、重载:js中没有传统意义上的重载---方法名称相同,则后定义的覆盖先前的定义
e、提供了 arguments 的关键字:表示方法中被传入的参数(数组形式)---模拟重载
arguments.length
arguments[index]
f、方法的其它定义方式
//其它方式一:声明一个 Function 对象--最后一个参数是方法体,其它的参数是方法的参数,以字符 串的形式传入
var f = new Function("x","y","alert(x+y);");
f(10,80);//90
//其它方式二:匿名函数(匿名方法)
var f1 = function(x,y){
alert(x+y);
};
f1(11,22);//33
9、全局函数
isNaN;
parseInt();
parseFloat();
encodeURI/decodeURI()
eval;--传入字符串作为参数,计算结果
四、DHTML应用
1、DHTML对象
window***
location:URl地址栏**
scree:屏幕*
history:历史访问记录*
navigator:浏览器*
event:事件***
document:文档***
2、window:表示整个窗口,窗口间的操作
window.alert();
window.confirm()://
弹出窗口:
window.open(url);
window.open(url,"name");
window.open(url,"name","width=200,height=300");-没有用
定时器:动态时钟,周期性的执行某端代码
window.setInterval
window.clearInterval
window.setTimeout(f,10);
window.clearTimeout(timer);
3、document对象
a、代表整个html文档,动态的操作页面,必须使用它
b、找到元素
方式一:document.getElementById()
方式二:根据元素层次结构查找
obj.parentNode--付节点
Obj.childNodes--所有的子节点,包括标签和空白
obj.lastChild/firstChild
方式三:document.getElementByTagName("input")
obj.getElementBy
c、读取或修改
规则一:将HTML标签对象化
<img src="a.jpg" > obj.src
<a href="a.html">click</a> obj.href
规则二:如果要操作的是标记中间的文本
---obj.innerHTML
规则三:修改样式
obj.style.color
obj.style.backgroundColor class--className
obj.syle.fontSize
规则四:修改复杂样式
规则五:节点类型未知
obj.nodeName--得到节点的名称,全大写的形式
onxxxx = "return false;"---取消当前事件
第二个常用:表格相关
var row =table.inertRoe(index);
var cell=row.insertCell(index);
4、screen对象 提供了属性,一获取屏幕相关的信息
width/height(只读)
var n=screen.width;//ok
screen.width=400;//error
5、history:表示历史访问记录
history.back();
history.forward();
6、location 对象:表示地址栏
location.href="";--保留历史记录
location.replace("url");--不会保留,新的页面替换掉先前的页面
区别:
多种从页面a去往页面b的方式
a--静态的,写死的url
window.open; --在新窗口中打开
history.xxx;--历史记录
location.href;--保留历史记录
location.repalce(url);--不保留历史记录
7、navigator对象:表示浏览器软件以及操作系统的相关信息--封装了很多属性,不用记忆,用遍历的方式了解
--遍历某个对象的所有属性
var r1= location.href;
var r2=location["href"]
--遍历navigator所有的属性
function testNavi(){
var str="";
for(var r in navigator){
str+=r+":"+navigator[r]+"\n";
}
alert(str);
}
8、event对象
a、事件的类别
鼠标事件
onclick/ondblclick
onmouseover/onmouseout
键盘事件:
onkeydown
onkeyup
状态事件
onblur
onfocus
onchange
onload
onunloads
b、事件的定义
html:onxxx="ff();";--静态为元素定义事件
code:obj.onxxx=function --动态定义
c、事件被取消
onxxx="return false;"
d、事件有冒泡机制;当层次包含的元素定义了相同的事件,触发事件时,从底层开始,层层向上,逐一触 发--当大量相同事件时,为其父元素定义事件,简化代码
e、event事件:当页面发生任何一个事件,将事件相关的信息写入event对象
event.x/y
event.srcElement--封装的是引发事件的对象
f、浏览器兼容问题
其他浏览器:js和html页面都可以认识event,通过srcElement属性得到源对象
火狐:js中不认识event;当在html中认识 使用这种方式0nlick=“cal(event);”
target属性得到源对象
怎么解决兼容性问题:1、写标准的代码 2、对于不同的浏览器区别对待,如上的例子使用||
0 0
- Javascript总结
- Javascript总结
- JavaScript总结
- JavaScript总结
- javascript总结
- javascript 总结
- javascript总结
- Javascript总结
- Javascript 总结
- JavaScript总结
- javascript总结
- Javascript总结
- javascript总结
- javascript 总结
- javascript总结
- javascript总结
- Javascript总结
- javascript总结
- 《老罗Android第二季》ViewPager分页及JSON
- TNS-01106: Message 1106 not found; No message file for product=network, facility=TNS(转)
- map、hashmap
- 闲暇时间看了下DHT网络
- Android Adapter学习之 用法总结
- javascript总结
- 判断二叉树是否平衡以及二叉树的路径和
- mysql字符集设置
- Torrent文件
- openwrt 在RT5350上实现mjpg-streamer视频流输出(摄像头格式为YUYV格式)
- s5pc100,s5pc110,s5pv210
- 编程练习:串口通信调试助手
- poj3295 Tautology , 计算表达式的值
- Lua学习笔记之模块