JavaWeb系列之二 (JavaScript的简介及其应用)
来源:互联网 发布:用php编辑九九乘法表 编辑:程序博客网 时间:2024/05/16 09:44
1.JavaScript的简介
*是基于对象和事件驱动的语言,应用于客户端
*基于对象:js里面提供好一些对象直接使用
*事件驱动:响应事件(比如说鼠标滑动)
*客户端:浏览器
*javascript实现网页简单的动态的效果
*三个特点
*交互性
*安全性:javascript不可以访问本地磁盘的文件
*跨平台性:只有浏览器支持javascript就可以运行javascript的代码
*Java和JavaScript的区别
*不是一家公司
*javaScript基于对象,java是面向对象
*java运行需要虚拟机,javaScript直接使用浏览器
*js是弱类型语言,java是强类型语言
*比如在java中int i=10但是int m=”10“是不正确的
*在js里面就没有这样的限制,var a=10,var a="10" var a=true;
*js的组成(三部分)
*第一部分:ECMAScript
*ECMA:欧洲计算机协会
*由这个组织制定的js规范(包括语句,语法)
*第二部分:BOM:浏览器对象模型
*第三部分:DOM:文档对象模型
2.js和html两种结合方式
*第一种使用html的标签<script type="text/javascript">js的代码</script>
*代码
<script type="text/javascript">
alert("df");
</script>
*第二种
**首先要创建js文件
**<script type="text/javascript" src="js文件路径"></script>
**就不要在script标签里面写js,因为不会执行
**<script type="text/javascript" src="js文件路径"/>这种写法找不到js文件
3.js的数据类型和变量声明
*java 里面基本数据类型byte short int long float double char boolean
提供了方法typeof(变量名称):查看变量的类型
*在js里面定义变量,都使用一个关键字var js原始类型(五个)
**string
var str="dsf";
**number
var str=1
**boolean
var str=true;false
**null :表示对象引用为空,空对象
**var date=null://new Date();
**undifined :定义变量,但是变量没有赋值 var m=
*js的注释
** 和java里面的单行注释和多行注释一样的
**单行注释//
**多行注释/* */
4.js的语句
*java里面的语句
**循环 for while do-while
**判断语句 if(){}else if(){}else{}
**switch 语句,在jdk1.7开始支持string类型
**swich(m){
case 1:
break;
case 2:
break;
}
*js的判断语句
**//if语句
var i=100;
if(i==10){
alert("i==10");
}else{
aler("i!=10");
}
* switch语句
** //switch语句
var m = 50;
switch(m) {
case 3:
alert("m==3");
break;
case 5:
alert("m==5");
sbreak;
default:
alert("other");
}
* 循环语句 for
** //for循环语句
for(var i=0;i<3;i++) {
alert(i);
}
** i++和++i区别
*引入:向页面输出内容
**document.write("aa");
**向页面输出html代码
5.使用js语句实现99乘法表
* document.write("<table border='1' border='blue'>")
for(var i=1;i<=9;i++){
document.write("<tr>");
for(var j=1;j<=i;j++){
document.write("<td>");
document.write(j+"*"+i+"="+j*i);
document.write("</td>");
}
document,writer("</tr>");
}
document.write("</table>");
6.js的运算符
*数字运算不区分整数和小数
var m=123/10000*10000; 结果:123;
*字符串的操作
//字符串的运算
var str="123";
document.write(str+1);//1231
document.write(str-1);//122
*如果字符串不是一个数字,相减操作,显示为NAN,表示不是一个数字
*boolean类型的运算
**如果值是true,把值当成1;
**如果是false,把值当成2;
//boolean 类型加减
boolean flag=true;
document.write(flag+1);//2
boolean falg=false;
focument.write(flag+1);//1
==和===区别
*==比较的是值,和类型无关
*===比较的是类型和值
7.js的数组
*java里面定义数组 String[] arr={"aa","cc"}
*js的数组三种定义方法
*第一种方式:var arr1=[1,2,3,"5",true];
*第二种方式:使用到一个内置对象Array
var arr2=new Array(3);
**定义数组名称是aar2,数组的长度是3;
arr2[0]="11";
arr2[1]="22";
*第三种方式:使用到一个内置对象Array
var arr3=new Array(2,34,4)
**定义数组名称是arr3,数组里面的元素是4,5,6
*在js里面有一个属性length;表示数组的长度
**document.write("length:"+arr2.length);
*js里面的数组的长度是可变的
*比如定义一个数组的是长度是3,但是赋值时候可以随便写下标的值
*数组的长度是最大的下标+1
8.js的函数
*在java里面定义方法
**public void/int 方法名(参数列表){
方法体
返回值
}
public void get1(int a){}
**js里面定义函数有三种方式
第一种方式:需要一个关键字function
function 方法名(参数列表){
方法体和方法值
}
function add1(a,b){
}
第二种方法(动态函数)直接使用function的关键字
var add2=new Function ("参数列表",“方法体”)
var argument="a,b"
var method1="var sum;sum=a+b;return sum;"
var add1=new Function(argument,method1);
第三题(匿名函数):直接使用function的关键字
var add3=function(参数列表){
方法体和返回值
}
var add2=function(m,n){
return m+n;
}
9.重载
什么是重载:方法名称相同,参数列表不同
js里面不存在重载,但是执行过程
10.全局变量和局部变量
全局变量:在javascript定义了就是在所有的javascript便签里面都可以使用
局部变量:在方法里面定义一个变量,这个变量只有在方法内使用
11.script标签放在什么位置
获取输入项里面的值:
script最好放到</body>后面,
因为html是从上到下加载的,如果把script标签放在head里面,还没有加载到输入框所以无法得到,所以这个值肯定取不到
12.elipse和myelipse的区别
elipse是免费开发工具
myelipse是一个收费的插件
js的应用
1.js的string对象
属性:length ,字符串的长度
方法
与html相关的方法
bold():字体加粗
fontcolor():设置字体颜色
link()把字符串设置成为超链接
sub()下标
sup()上标
与java相似的方法
charAt();返回指定位置的字符
字符的位置从零开始。使用这个方法使用,如果位置超过了字符串,显示空字符串
var str="abcd";
document.write(str.charAt(4));
concat();连接字符串
var str1=“dsf”;
document.write(str.concat(str1));
indexof();
var str2="abc";
document.write(str2.indexof("a"));//0
检索字符串,有值是返回位置,如果不存在返回-1
substr()方法 和 substring()方法
都需要两个参数
var str3="abcdef";
document.write(str3.substr(1,3));
//bcd 第一个参数:从那个位置开始 第二个参数:从哪个参数开始向后取几位字符 从b开始取3位
document.write(str3.substring(1,3));
//bc 第一个参数:从那个参数开始,第二个参数:到哪个参数结束但是不包含它 包含头不包含尾
2.string的Array对象
*创建数组
var arr1=[1,2,3];
var arr2=new Array(4);
var arr3=new Array(5,6,7);
属性:length,数组的长度
var arr1=[1,2,3,4];
document.write(arr1.length);
方法:
concat()方法
var arr2=[6,7,8];
document.write(arr1.concat(arr2));
join()方法
根据指定的分配符进行分割
var arr3=["AA","BB","cc"];
document.write(arr3);
document,write(arr3.join("-"));//把逗号换成“-”;
push()方法:向数组的末尾添加元素,返回添加之后的长度
var arr4=["tom",“jack”,"mary"];
document.write("length"+arr4.push("ww"));//4
document.write(arr4);
添加数组的时候会把数组当作一个整体加进去
var arr5=["ad","asd","asdad"];
document.write(arr4.push(arr5));//4
pop()方法:删除并返回最后一个元素
var arr7=["asdd","ad","sad"];
document.write(arr7);//asdd,ad,sad
document.write(srr7.pop()); //sad
document.write(arr7);//asdd,ad
reverse();颠倒数组中元素的顺序
var arr8=[10,20,30];
document.write(arr8);//10,20,30
socument.write(arr8.reverse());//30,20,10
3.js的Date对象
创建Date对象 var date=new Date();
var date=new Date();
document.write(date);//Fri May 22 10:31:41 UTO
toLocaleString(); 把时间转化成本地的格式的时间
document.write(date.toLocaleString());
getFullYear() 得到当前年的方法
getYear();得到的是两位数
document.write(date.getFullYear());
得到当前月 getMonth() 从Date返回月份(0-11)
得到准确的月份是+1
document.write(date.getMonth()+1);
得到当前的星期getDay() 从Date对象返回一周的某一天(0-6)
得到星期日是0
得到当前的天 getDate();从Date对象返回一个月的某一天(1-31)
document.write(date.getDate());
得到当前的小时 getHours()
得到当前的分钟 getMinutes()
得到当前的秒 getSeconds()
得到毫秒数 getTime();返回1970年1月1日至今的毫秒数
docment.write(date.getTime());
用在页面缓存,防止页面缓存
4.js的Math对象
在Math里面的方法是静态方法,直接使用Math
var a=10.9
ceil(x)向上
document.write(Math.ceil(a)); //11
floor(x)向下
document.write(Math.floor(a)); //10
round(x)四舍五入
document.write(Math.round(a)); //10
random()表示0.0到1.0的值
Math.random(Math.ceil(Math.random*10));//随机取1到10的数
5.js的全局函数
方法不属于任何一个对象,这些方法使用
eval();比如字符串是一个js代码,可以直接执行
var str="alert('dsf')";
//alert(str);
eval(str);
encodeURI():对字符串进行编码
decodeURI();对编码之后的字符串进行解码
var str1="ads测试";
var encode1= encodeURI(str1);
document.write(encode);//abs%E%R%....
var decode= decodeURI(encode1);
document.write(decode);
isNaN()判断是否是数字
如果不是数字返回是true
如果是数字返回是false;
var aa="abc";
alert(isNaN(aa));true
var bb=12;
alert(isNaN(aa));flase;
parseInt();转换成数字
var bb=“234”;
document.write(bb+1);//2341字符串的拼接
document.write(parseInt(bb)+1);//235
6.js的函数重载
js不存在函数的重载
function add1(a,b){
return a+b;
}
function add1(a,b,c){
return a+b+c;
}
function add1(a,b,c,d){
return a+b+c+d;
}
add1(1,2);//NaN
add1(1,2,3,);//NaN
add1(1,2,3,4);//10
会调用最近的方法
7.js的BOM对象
bom browser object model ,浏览器对象模型
bom里面提供一些对象,使用这些对象可以操作
1.navigator:得到浏览器的信息
document.write(navigator.appName);//浏览器的名称
2.screen:得到屏幕信息
document.write(screen.width+" "+screen.height);//当前屏幕的信息
3.history:得到请求地址的历史
创建三个页面,
function back(){
//history.back();
history.go(-1);上一个
}
function next(){
//history.forward();
history.go(1);
}
<input type="button" value="上一个" onclick="back();">
<input type="button" value="上一个" onclick="next();">
4.location:href 第一个功能: 得到当前请求的地址。第二个功能:设置请求地址,
第一个功能: document.write(location.href);
第二个功能:
在表单输入项里面,button <input type="button" value="href" onclick="js方法">
在button上面的属性onclick ;表示鼠标点击事件
<input type="button" value="href" onclick="href1();">
<script text="java/javascript">
function href1(){
location.href="hello.html";
}
</script>
5.window:窗口对象,是一个顶层对象
alert();在页面弹框
confirm();确认框
window.confirm("确认删除吗");
返回值true 和false
prompt()方法输入框
open()打开一个新窗口
<input type="button" value="open" onclick="open1()">
打开页面的地址,"" ,窗口属性
function open1(){
window.open("hello.html","","width=200,height=100");
}
close:关闭窗口
两个重要的方法
setInterval("js代码","毫秒数")在一定的时间内,重复执行js代码
var id1= setInterval("alert('123');",3000);//每三秒执行一次
setTimeout("js代码",毫秒数)//就执行一次
var id2= setInterval("alert('as3');",3000);
clearInterval()取消这个操作
window.clearInterval(id1);
clearTimeout()取消这个Timeout操作
window.clearTimeout(id2);
8.js的DOM对象
document object model 文档对象模型
文档:标记型文档 html xml
对象:对象里面有属性和方法
使用js的dom里面提供的对象,使用这些对象的属性和方法,对标记型文档进行操作
如果想要对标记型文件进行操作,就要解析文件
首先需要把标记型文档里面的所有内容都封装成对象
标签,属性,文本内容都封装成对象。
dom解析过程
根据html的层级结构,在内存分配一个树形结构
树形结构:
只有一个根节点,在根节点下面有子节点,没有子节点的节点是叶子节点。
document对象:整个文档
element对象:标签对象(元素对象)
属性对象:
文本对象:
Node节点对象
是这些对象的父对象
9.DHTML的介绍
不是一门语言,是很多技术的简称
html:封装数据的作用
css:使用属性和属性值来添加样式
ECMAscript:专门js的语句和语法
dom:对我们的标记型文档进行操作
10.document对象
每一个载入浏览器的HTML
document对象代表整个文档
通过document对象可以得到html中标签对象
方法
1. getElementById();可以通过id得到标签的对象
返回值是对象,但是如果有多个一样的ID,只获取第一个ID值。
ID值是可重复。
所以它不是一个数组,因为它的获取值只有一个
如果想要标签里面的属性值,标签对象.属性名称
<input text="text" id="testid" value="asd">
var input1= document.getElementById("textid");
input1.value
2. getElementByName();通过name的值得到所有的标签,得到的就是一个数组
遍历数组地道一个标签对象,通过标签对象名称,属性名称,得到属性值
<input text="text" name="testname" value="asd1">
<input text="text" name="testname" value="asd2">
<input text="text" name="testname" value="asd3">
<input text="text" name="testname" value="asd3">
<input text="text" name="testname" value="asd4">
<input text="text" name="username" value="asd4">
var inputs1=document.getElementByName("testname");
alert(inputs1.value);
var inputs2=document.getElementByName("username")[0].value;;//只有一个得到的也是数组
3. getElementsByTagName();返回数组
<input text="text" name="testname" value="asd1">
<input text="text" name="testname" value="asd2">
<input text="text" name="testname" value="asd3">
<input text="text" name="testname" value="asd3">
<input text="text" name="testname" value="asd4">
<input text="text" name="username" value="asd4">
var inputs3= document.getElementsByTagName("input");
alert(inputs3.length);
for(var a=0;a<inputs.length;a++){
var inputs2=inputs[a];
inputs2.value
遍历数组地道一个标签对象,通过标签对象名称,属性名称,得到属性值
write向页面输入信息,或者html的代码
}
0 0
- JavaWeb系列之二 (JavaScript的简介及其应用)
- javaweb基础系列之二
- Servlet之javaweb应用(二)
- javaWeb系列之三(XML的简介与约束(DTD和Schema))
- JavaWeb系列之五(HTTP协议和WEB概述与TOMCAT的简介、安装)
- (javaweb读书笔记系列之二)servletconfig和servletcontext
- JavaWeb系列之一(Html与CSS的简介)
- HandlerSocket系列(二):架构、特点及其应用场景
- HandlerSocket系列(二):架构、特点及其应用场景
- [原创]HandlerSocket系列(二):架构、特点及其应用场景
- HTML5之JavaScript简介(二)
- Android的AdapterView及其子类简介-android学习之旅(二十三)
- JavaScript高级之闭包的概念及其应用
- JavaScript高级之闭包的概念及其应用
- JavaScript高级之-------闭包的概念及其应用
- 利用未公开函数枚举进程及其关联的端口系列之(二)
- Web开发之JNDI及其应用简介
- 二层for循环的应用系列之一:数字升序排列及其类似应用
- sqlAlchemy学习手册(二)简单教程①
- Leetcode33: Excel Sheet Column Title
- POJ 1953 World Cup Noise
- 提高第36课时,实践3,项目3-各种“棋盘”
- Tomcat8+redis做session同步
- JavaWeb系列之二 (JavaScript的简介及其应用)
- android 动画分类
- python使用ftplib模块实现ftp目录嵌套下载
- 泊松分酒
- opencv高效访问图像像素(遍历像素的方法总结)
- BZOJ 2287 POJ Challenge 消失之物 分治+背包
- uitableview并排显示两个图片
- 关于
- iOS 牛人博客