javascript笔记
1.javascript
是网景(Netscape)开发的一种与页面进行交互的编程语言.
javascript程序在浏览器端执行.文件以.js为结尾.
Netscape Navigator javascript
IE JScript
---引入js:
内部:使用<script>标签
外部:
<script type="text/javascript" src="js文件路径"></script>
2.javascript作用
a.前段验证
b.ajax核心技术之一.
c.与页面进行交互,生成动态效果
d.获得浏览器的相关信息
3.javascript的组成部分:
1)ECMAScript:语法基础(已经标准化)
2)DOM:文档对象模型(部分标准化)
3)BOM:浏览器对象模型(没有标准,但是大部分浏览器都支持window,location,history,screen等).
4.语法基础
1)数据基本类型
number:数字类型
string:字符串类型
boolean:布尔类型
null:空类型
undefined:未定义类型
注意:
a.undefined:
定义一个变量如果没有赋值,那么这个变量就是undefined.
如果没有定义变量,直接使用的类型是undefined
b.null
null类型的值为null.
javasrcipt函数没有返回值,函数的返回值为null.
c.布尔类型
以下几种情况为true
1.字符串,只要不是空字符串
2.数字非0
3.对象
null和undefined为false
d.NaN:Not a number 不是一个数字
但NaN这个值属于number类型
2)对象类型
function Object String Math Array Date
java是强数据类型语言:定义变量时,必须定义变量的类型
js弱数据类型的语言:定义变量时,不须确定变量的类型.但数据本身有类型.
---使用变量时,js的特性:
a.javascript允许定义多个重名变量,变量的值以最后的变量赋值为准.
b.javascript允许命令结束后不写";"号(推荐写上)
c.javascript允许定义变量不使用关键字"var",所定义的变量叫做全局变量.
局部变量:指的是函数内部的变量,且使用"var"定义,作用的范围:从定义变量到函数结束.
3)运算符
a.算术运算符 + - * / % ++ -- += *= /= %= 等
如果在进行非"+"操作时,javascript会把字符串(只包含数字)变成数字.
parseInt()
parseFloat()
b.比较运算符 < > >= <= == ===
==:对比的是数据的值
===:对比数据值的同时,比较数据类型
c.逻辑运算符&& || !
d.三目运算符 (a==b)?true:false;
e.赋值运算符 =
4)流程控制语句
1.条件
if ..else
2.循环
do ... while
while
for(var i=0;i<10;i++)
java:
for( Object obj:list){}
List<Person> list = new ArrayList<Person>();
list.add().....
for(int i=0;i<list.size();i++){
Person p = list.get(i);
p.getName();
}
for(Person p:list){
p.getName();
}
js:foreach()(之后讲)
---对象数据类型----
1.Function函数 ---->类似java中的方法
java:定义方法
修饰符 返回值类型 方法名(参数列表) 异常表{}
public int add(int i,int j){ return i+j;}
js:函数
a.function add(i,j){ return i+j;}
b.不推荐使用,因为函数体书写不便,可读性不强
var fun = new Function("i","j","return i+j");
c. 匿名函数
var fun = function(i,j){ return i+j;}
注意:
1)js中函数没有重载的概念,函数调用优先变量的定义,之后以最后一次定义为准.(和参数列表无关)
2)函数内部有一个隐藏对象(内置对象)
arguments:函数被调用时所传的参数.
3)函数的参数可以是另一个函数变量
function fun1(){alert("fun1");}
function fun2(){alert("fun2");}
function fun3(f){alert("fun3");f();}
fun3(fun1);
2.Object 对象
java: Student类 Student s = new Student();
js:没有类的概念
1)通过构造函数创建对象
var student = new Object();
student.name = "jack";
student.age = 25;
student.getName = function(){return this.name;}
2)JSON方式创建对象(JSON以后讲)
var student = {
name:"rose",
age:18,
getName:function(){
return this.name;
}
};
3.Array数组
1).通过构造器来创建
var arr = new Array();
java中数组特点:
int[] arr= new int[10];
a.长度不可变
b.一种类型的数组只能存储同种类型的数据
js中数组的特点:
a.长度可变
b.可以存储任意类型的数据
2).JSON方式创建数组
var arr = [1,2,"abc",new Object()];
3).数组常用的API:
length:属性,返回数组长度.
toString():返回数组的字符串表示
concat():用于连接两个数组,返回一个新的数组
join(";"):用于将数组中的各个元素以";"号连接成字符串
reverse():将数组反转,返回一个原数组,没有形成新的数组
slice(m,n):用于截取数组的一部分([m,n)),并以数组的形式返回
数组作为堆栈使用
push():压入
pop():弹出
数组作为队列使用
shift():删除并返回数组的第一个元素
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
数组排序:
sort():以字符串方式比较
数字排序:
arr.sort(function(a,b){
//return a-b;//升序
return b-a;//降序
});
字符串长度排序:
arr12.sort(function(a,b){
return a.length - b.length;//升序
return b.length - a.length;//降序
});
4.String
java : String s = new String("jack");
js: var s = new String("jack");
var s = "jack";
常用API:
length属性:返回字符串长度(java中str.length())
charAt(index):返回指定位置的字符
substring(from,to):返回子字符串(区间左闭右开)
indexOf(str):指定字符串在原字符串中第一次出现的位置,找不到返回-1.
match(regexp):返回匹配指定正则表达式的字符串,返回的结果是一个数组.
var s1 = "aa12bb12223ccdd14";
var reg = /[0-9]+/g;//g :global搜索全局
var arr = s1.match(reg);
var tel = "+86 18670338142";
var reg1 = /^(\+\d{2}\s)?\d{11}$/;
reg1.test(tel):判断字符串tel是否是按照正则表达式的规范
replace(reg,""):替换符合正则表达式的字符串
toLowerCase()/toUpperCase():返回小写/大写形式
search(reg):返回按照正则表达式检索到的字符串位置(只检查一次)
split(","):以","分割字符串,返回数组
5.Date日期
java: java.util.Date;
java.sql.Date;
Date date = new java.util.Date();
ps.setDate(1,new java.sql.Date(date.getTime()));
js:
1)var d = new Date();
toLocaleString():按照当前国家显示日期的习惯来显示日期
2010 10 1 13:15
2.显示特点某天日期
var l = Date.UTC(2010,9,1,5,15);
var d = new Date(l);
3.常用API
getYear(): 距离1900年相差多少年
getFullYear(): 实际年份
getMonth():月份(从0开始)
getTime():距离1970年的毫秒数
getDay():星期几
getDate():当月的几号
getHours(): 时
getMinutes(): 分
getSeconds(): 秒
6.Math
处理算术运算
Math.round():四舍五入
Math.ceil():对于小数,向上升值
Math.floor():截取小数数据(取整数有效位,向下取整)
Math.random():0到1之间的随机数
例: 0到17之间的随机数
Math.floor(Math.random()*18)
1到17
Math.ceil(Math.random()*17)或
Math.floor(Math.random()*17+1)
----foreach循环---
java: List<User> list = new ArrayList<User>();
for(User u:list){}
js:
1.遍历数组
for(idx in arr){//迭代数组的下标值
alert(idx+":"+arr[idx]);
}
2.遍历对象的属性
for(prop in student){//prop迭代对象的属性名
alert(prop+":"+student[prop]);
}
7.事件监听属性
1)一般性事件
几乎适用全部的可显示标签
onclick:单击
ondblclick:双击
onmouseover:鼠标移上元素
onmouseout:鼠标移出元素
onmousemove:鼠标移动
onmousedown:鼠标左键按下
onmouseup:鼠标左键松开
2)页面相关事件 body标签中
onload:页面加载之后触发
onscroll:页面滚动时触发
onresize():调整大小
3)表单相关事件
onblur:当前元素失去焦点时触发
onchange:用户改变域的内容
onfocus:元素获得焦点时触发
onsubmit:提交按钮别点击时触发(<form>)
return true|false:为true就提交表单.反之则不提交
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。