J2EE进阶之javascript 三

时间:2022-09-12 17:03:37

# javaScript

JavaScript(js)

  • 基于对象和事件驱动的脚本语言,作用客户端。
  • 特点

    • 交互性
    • 安全性 (不可以访问本地的硬盘)
    • 扩平台性 (浏览器可以解析js文件)
  • javascript与java是不同 (雷锋与雷峰塔)

    • Netscape(网景)livescript
    • java诞生了(改名javascript)
  • javascript的语言组成

    • ECMAScript 标准
    • BOM 浏览器对象模型
    • DOM 文档对象模型
  • JavaScript 是基于对象的,java是面向对象

  • JavaScript只需解析就可以执行,而java需要先编译成字节码文件,再执行。
  • JavaScript 是一种弱类型语言,java是强类型语言。

javascript和html的结合

* HTML提供的标签<script type="text/javascript">js的代码</script>    
* 引入外部的文件
在<script>标签通过src的属性引入外部的文件,src的值是js文件的地址
* 如果<script>标签通过src属性引入了外部的文件,里面的js代码就不会执行。

* 可以放在页面的任意位置(一般都放在body后边)

实例代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
Html提供的标签 <script type ="text/javascript">js代码</script>
引入外部的文件
在<script>标签通过src的属性引入外部的文件,src的值是js文件的地址
*如果<script>标签通过src属性引入了外部的文件,里面的js代码就不会执行。
-->

<script type="text/javascript" src="dmeo.js">
//弹窗
alert("呵呵");

</script>

<script type="text/javascript">
//弹窗
alert("嘿嘿");

</script>
</body>
</html>

js代码

J2EE进阶之javascript 三

js的语法

* 关键字
* 标示符
* 注释
/*
多行注释
*/

// 单行

* 变量:使用var关键字声明变量。
* 运算符
* 算术运算符
alert(true + 1); // 2
* 0或者null代表是false,非0或者非null就是true,默认用1表示

* 比较运算符
== 比较值
=== 又比较值和类型

变量代码示例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
/*
* js的原始数据类型
* Undefined、Null、Boolean、Number 和 String

* String 字符串类型
* 双引号和单引号都是字符串
* Number 数字类型
* 不区分整数和小数
* Boolean 布尔类型
* Null 空(给引用赋值)
* Undefined 未定义(声明变量,没赋值)

* 定义变量 就使用一个关键字 var

* 提供了一共方法 typeof() 可以变量的类型
*/

var str = "abc"; //字符串
var num = "11"; //数字类型
var flag = true; //布尔
var data = null;
var un;

var str2 = "bcd";
alert(typeof(str2));
//可以直接改变字符串类型
var str2 = 15;
alert(typeof(str2));

</script>
</body>
</html>

运算符代码示例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">

/*
算术运算符
alert(true + 1); // 2
* 0或者null代表是false,非0或者非null就是true,默认用1表示

比较运算符
== 比较值
=== 又比较值和类型
*/

var num = 3710;
// alert(num/1000*1000); // 3710

var str = "12";
//alert(str+1); // 121 链接字符串

//alert(str - 1); // 11

//alert("abc" - 1); // NaN

//alert(true + 1); // 2

//alert(null + 1); // 1

/* if(5){
alert("大于0以上的数字就是true");
} */
var n = 3;
var m;
m = ++n;
//alert("m="+m+","+"n="+n);

var str4 = "14";
var num4 = 14;
//alert(str4 == num4);
alert(str4 === num4);
</script>
</body>
</html>

js的语句

            * 判断语句
if(8 == num){
赋值的问题,需要注意。
}else{

}

* 循环语句
for(var i=0;i<=8;i++){
// 循环体
}
* document对象write("字符串")
* 把文本的内容写在浏览器端

* while(){}

示例代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
/*
* 判断语句
if(8 == num){
赋值的问题,需要注意。
}else{

}

* 循环语句
for(var i=0;i<=8;i++){
// 循环体
}
* document对象write("字符串")
* 把文本的内容写在浏览器端

* while(){

}

*/

for(var i=0;i<3;i++){
//alert("i = " + i);
window.document.write(" i = "+ i+"<br />"); //页面写内容
}



</script>
</body>
</html>

函数

        * java中 public String 方法名称(String str,int num){
方法体;
return null;
}

* js中,用到关键字 function
function 方法名称(str,num){ // 参数列表不能使用var关键字
方法体;
return; // 如果没有返回值,retrun可以不写。
}
* 在方法体内存在一个数组 arguments 通过数组存储参数

* js动态函数(用的不多)
* js提供了内置的对象 Function
* var add = new Function("","");

* js匿名函数(用的较多)
* 没有名称的函数

* js的全局和局部变量
全局变量:在script里面定义的变量,全局变量。可以在页面的任意位置拿到。
局部变量:在方法体内部定义的变量,局部变量。

函数示例代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
/*
java中 public String 方法名称(String str,int num){
方法体;
return null;
}
js中,用到关键字 function
function 方法名称(str,num){ // 参数列表不能使用var关键字
方法体;
return; // 如果没有返回值,retrun可以不写。
}
在方法体内存在一个数组 arguments 通过数组存储参数

js动态函数(用的不多)
js提供了内置的对象 Function
var add = new Function("","");

js匿名函数(用的较多)
没有名称的函数
*/
function add(){
//alert("呵呵") ;
}
add();


function add2(x,y){
//alert(arguments.length);
var sum = x+y;
return sum
}
var sum = add2(5,6);
//alert(sum);

var sum2 = add2(5,8,9,10);
//alert(sum2); //13 这是因为默认数组只取前两位

//动态函数
var param1 = "var sum;sum=x+y;return sum;";
var param2 = "var sum;sum=x*y;return sum;";
var param3 = "x,y";
var add3 = new Function(param3,param1);
//alert(add3(8,9));

//匿名函数
var add4 = function (){
alert("haha");
};
add4();


</script>



</body>
</html>

局部变量和全局变量示例代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<script type="text/javascript">
/*
全局变量:在script里面定义的变量,全局变量。可以在页面的任意位置拿到。
局部变量:在方法体内部定义的变量,局部变量。
*/
for(var i=0;i<4;i++){
document.write("i = " + i+"<br />");
}

document.write(" i == " + i);

function run(){
var y = 5;
}
document.write(y); //报错,局部变量无法使用

var x = 4;
function show(x) {
x = 8;
}
show(x);
alert("x = " + x);
</script>
</body>
</html>

js的对象

js的String对象

示例代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<script type="text/javascript" src="out.js"></script>

<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
/*
* js的String对象
* var str = "abc";
* var str = new String("abc");

* 属性:length 字符串的长度
* 方法
* 和HTML相关的
* bold() 粗体显示字符串
* fontcolor(color) 设置字体的颜色
* fontsize(size) 设置字体的大小
* italics() 斜体显示
* link(url) 设置链接
* sup() 上标

* 和java中String对象类似的方法(*****)
* charAt(index) 返回指定位置的字符
* indexOf(searchvalue,fromindex) 检索字符串
* lastIndexOf() 从后向前的
* replace() 替换字符串
* substring(start,stop) 从哪开始,到哪结合(包含开始不包含结束)
* substr(start,length) 从哪开始,截取长度

*/

var str = "abc";
//alert(str.length);
//对document.write封装
println(str);

//println(str.charAt(2));
//println(str.indexOf("f"));
//var str2 = str.replace("bc", "ef");
//println(str2);

println(str.substring(1, 3));
println(str.substr(1,3));
//bold() 粗体显示字符串
println(str.bold());
//document.write(mybold(str));
function mybold(s){
var result = "<b>"+s+"</b>";
return result;
}
//println(str.fontcolor("red"));
//println(str.link("http://www.baidu.com"));

//println(3+"2".sup());

</script>
</body>
</html>

输出代码println.js

J2EE进阶之javascript 三

js的Array对象

    * js的数组
* var arr = [2,3,4];
* var arr = new Array(5); 数组长度是5
* var arr = new Array(5,6); 数组元素是5,6

* 数组的长度
* length
* 数组的长度是可变的

* 方法
* concat() 链接数组或者元素都可以
* join(separator) 转化成字符串
* pop() 删除并返回最后一个元素
* push() 向末尾添加一个元素,返回新的长度

示例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="out.js"></script>
<title>Insert title here</title>
</head>
<body>
</body>

<script type="text/javascript">
/*
* js的数组
* var arr = [2,3,4];
* var arr = new Array(5); 数组长度是5
* var arr = new Array(5,6); 数组元素是5,6

* 数组的长度
* length
* 数组的长度是可变的

* 方法
* concat() 链接数组或者元素都可以
* join(separator) 转化成字符串
* pop() 删除并返回最后一个元素
* push() 向末尾添加一个元素,返回新的长度

*/

var arr = ["NBA","CBA","CUBA","WNBA"];
//alert(arr.length);
/* println(arr);
arr[4] = "abc";
println(arr); */

println(arr);
//var arr2 = arr.concat("NBA");
//println(arr2);

//println(arr.join("-"));

println(arr);
var str = arr.pop();
println(str);
println(arr);

</script>
</html>

Date对象

示例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="out.js"></script>
<title>Insert title here</title>
</head>
<body>
</body>

<script type="text/javascript">
/*
* Date对象
* var date = new Date(); 当前的时间

* toLocaleString() 根据本地的日期格式转化成字符串

* getDate() 返回一个月中的某一天
* getDay() 返回一周中的某一天(0-6)
* getMonth() 获取月份(0-11)
* getFullYear() 获取年

* getTime() 获取毫秒数
* setTime() 通过毫秒数设置日期

* Date.parse(datestring) 解析字符串,返回毫秒数
* 2014-11-2 解析不了
* 11/11/2014
* 2014,11,11
*/
var date = new Date();
/* println(date);

println(date.toLocaleString());
println(date.toLocaleDateString());
println(date.toLocaleTimeString()); */

var monthday = date.getDate();
var weekday = date.getDay();
var month = date.getMonth()+1;
var year = date.getFullYear();

println(year+"-"+month+"-"+monthday+" "+getWeek(weekday));

function getWeek(num){
var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
return arr[num];
}

// 1414916247532
var m = date.getTime();
//println(m);

var date2 = new Date();
date2.setTime(1414916247532);
println(date2.toLocaleString());

var date3 = new Date(1414916247532);
println(date3.toLocaleString());

var str = "11/11/2014";
var mm = Date.parse(str);
var date4 = new Date(mm);
println(date4.toLocaleString());

</script>
</html>

Math对象

            ceil(x)     上舍入
floor(x) 下舍入
round(x) 四舍五入

* random()

示例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="out.js"></script>
<title>Insert title here</title>
</head>
<body>
</body>

<script type="text/javascript">
/*
ceil(x) 上舍入
floor(x) 下舍入
round(x) 四舍五入

* random()
*/

println(Math.ceil(14.2));
println(Math.floor(14.6));
println(Math.round(14.3));

// 获取10个数,从1-10之间的数
for(var i=0;i<10;i++){
println(Math.floor(Math.random()*10+1));
}

</script>
</html>

RegExp对象

            * var reg = new RegExp("表达式");  (开发中不常用)
* var reg = /^表达式$/(*****) (开发中常用)

* exec(string) (开发中不使用)
* test(string)(*****) (经常使用)

* reg.exec("12345"); 返回匹配的内容,返回null
* reg.test("12345"); 返回true或者false

总结: var reg = /^表达式$/ ,调用exec("12345678")返回匹配的内容,返回null或者test返回true或者false。
var reg = new RegExp("表达式");,调用exec("12345678"),返回12345

if(reg.test("12345")){
//
}else{
//
}

全局函数

    * 游离的函数,直接拿过来用。
* eval() 可以解析字符串,执行里面的javascript的代码
* isNaN()
* encodeURI() 编码
* decodeURI() 解码

示例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<form>
<input type="text" />
</form>

</body>

<script type="text/javascript">
/*
全局函数
* eval() 可以解析字符串,执行里面的javascript的代码
* isNaN()
* encodeURI() 编码
* decodeURI() 解码
*/

var str = "alert('hehe');";
// alert(str);

// eval(str);

// alert(isNaN("abc" - 1));

var str2 = "abc张三";
var str3 = encodeURI(str2);
alert(str3);

var str4 = decodeURI(str3);
alert(str4);

</script>
</html>

BOM

    * BOM   (Browser Object Model)  浏览器对象模型

* Window 窗口对象(*****)
* Navigator 和浏览器版本相关(**)
* Screen 和屏幕相关(不看)
* History 和历史相关(**)
* Location 和链接相关(***)

示例代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>


<input type="button" value="我是按钮" onclick="run()" />

</body>

<script type="text/javascript">
/*
绑定事件onclick
* Navigator
* userAgent 获取浏览器的版本信息
*/

function run(){
//alert("呵呵");

alert(navigator.userAgent);
}


</script>
</html>