1.Function对象
Function是一个很特殊的对象,特殊在该对象就像java中的方法一样,可以运行,可以传参数。
三种定义function对象的方法:
1.function fun1(a,b){
alert(a+b);
}
2.var fun2 = new Function("a","b","alert(a+b);");//最后一个参数代表函数体
3.var fun3 = function(a,b){
alert(a+b);
}
函数调用时要注意的事项:
1.js中函数的调用,跟java相比,只需要填对函数名称即可,不管参数怎么填都可以调用。(如参数个数不匹配)
2.js中并没有重载,不过可以通过内置对象arguments(代表参数运行时的实际参数列表)来模拟重载的功能。
2.1 使用它的.length属性获得实际参数的个数。
2.2 使用arguments[n]来获得具体的某个参数。
3.函数的返回。
3.1 js中函数的返回也使用 return关键字
3.2 跟java一样,return 还可以用作结束函数的运行.
4.void()运算符的作用是拦截函数的返回值,使其返回undefined。
2.三大包装类的学习
三大包装对象 String Number(了解) Boolean(了解)
特性:js中 string number boolean 是伪类. 可以直接使用三个包装对象中的方法和属性.
String的使用
var str = new String("hello");
//方法分为三类
//1.没有用的(开发中用的很少), 帮我们生成html代码的方法.
alert(str.anchor("abc"));
alert(str.big());
alert(str.sup());
//2.重要的
alert(str.charAt(1));//e 返回指定位置上的字符
alert(str.charCodeAt(1));// 返回对应字符的asc码值
alert(str.concat(" world"));// 连接字符串hello world
alert(str.indexOf("l"));//2 检索字符串
alert(str.lastIndexOf("l"));//3 从后向前搜索字符串。
alert(str.substring(0, 2));// he 不包含最后一个参数角标所在字符
alert(str.slice(-3, -1));// hel 支持负数,从右向左数.
//3.结合正则对象使用
mactch
search
split
replace
</script>
3.typeof和instanceof
typeof用于判断属于哪个原始类型(五种原始类型:number,String,undefined,Boolean,null)
instanceof用于判断对象具体属于哪个类型。
4.Global对象(内置对象)
使用原因:get方式提交时,如果有中文的话,会转成其他码比如: ?name=%E7%A2 ==> 是因为 HTTP协议 在传输中文时会出现问题.所以表单传输中文浏览器会自动转码,所以使用此对象的方法进行转码。
encodeURI(URI) 对中文进行编码
decodeURI(encodedURI) 对中文进行解码
encodeURIComponent(uriComponent) 除了对中文编码 还对一些符号进行编码 . 当我们要传递的参数 使用了一些特殊符号时,使用该方法编码.
decodeURIComponent(uriComponent)
escape(s) 已经淘汰的方法.
unescape(s)
两种方法应用场景不同,如下所示:
//---------encodeURI decodeURI------------------------
var str = "http://www.baidu.com?name=传智";
var str2 = encodeURI(str);
alert(str2);
alert(decodeURI(str2));
//-------------encodeURIComponentdecodeURIComponent--------------------
var str_3 = "http://www.baidu.com?name=张:三/"
var str_4 = encodeURIComponent(str_3);
alert(str_4);
alert(decodeURIComponent(str_4));
5.Math对象
Math是内置对象 , 与Global的不同之处是, 在调用时 需要打出 "Math."前缀.
方法略
6.Array对象
<!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>
<script type="text/javascript">
//Array对象
//创建方式1
var arr1 = [1,2,3]; //
//创建方式2 构造函数中所有参数都作为 数组的元素.
var arr2 = new Array(1,2,3);
//alert(arr2.length);
//创建方式3 如果Array构造函数中,只填一个参数并且为数字.那么这个参数是规定数组的长度,而不是数组的元素.
var arr3 = new Array(3); // 创建一个长度为3 的空数组. //Array当中的属性
//length属性 ==> 数组的长度.
//alert(arr3.length);
// Array的遍历
/* for(var i = 0 ; i< arr2.length ; i++){
alert(arr2[i]);
} */
//Array中的方法.
//concat 两个数组相加.
//join方法 返回一个字符串, 字符串内容是使用数组中各个元素相(按照给定参数)连接.
//alert(arr1.join("-"));
//---------------pop方法 push方法------------------
//使用这两个方法 模拟了一个栈的数据结构.(先进后出)
/* alert(arr1.pop());//3
alert(arr1.length);//2 */
// alert(arr1.push(4));//4
//------------------------reverse 将数组反转 ----------
/* arr1.reverse();
alert(arr1.join()); */
//---------------------sort 排序 ---------------------------
//注意!!: sort方法排序,默认是按照字符串比较规则来排序的.
/* var arr4 = [8,2,3,9,1,100];
arr4.sort(_abc);
alert(arr4.join()); */
//比较器1
function abc(a,b){
if(a > b){
return 1;
}else if(a == b){
return 0;
}else{
return -1;
}
}
//比较器2
function _abc(a,b){
return a-b;
}
// js中数组的特性
//java中数组的特性, 规定是什么类型的数组,就只能装什么类型.只有一种类型.
//js中的数组特性1: js中的数组可以装任意类型,没有任何限制.
//js中的数组特性2: js中的数组,长度是随着下标变化的.用到多长就有多长.
var arr5 = ['abc',123,1.14,true,null,undefined,new String('1213'),new Function('a','b','alert(a+b)')];
/* alert(arr5.length);//8
arr5[10] = "hahaha";
alert(arr5.length); //11
alert(arr5[9]);// undefined */ //-----------------------面向对象的范畴,该现象不要研究.-----------------------------------
arr5['abc'] = 100;
alert(arr5.length);//
alert(arr5['abc']); </script>
</head>
<body> </body>
</html>
7.Date对象
1.new Date() 获取当前时间
2.getFullYear() 获取年份
3.getMonth() 获取月份注意 1月份结果为0
4.getHours() 小时
5.getDate() 日期
6.getMinutes() 分钟
7.getSeconds() 获取秒
8.getTime() 获取毫秒值.
9. toLocaleString () 获取本地的时间格式字符串.
//例一: 打印出当前日期 格式如下.
// 2014年06月18日 15:40:30 星期三
function getCurrentDate(){
//1. 创建Date对象
var date = new Date(); //没有填入任何参数那么就是当前时间
//2. 获得当前年份
var year = date.getFullYear();
//3. 获得当前月份 js中月份是从0到11.
var month = date.getMonth()+1;
//4. 获得当前日
var day = date.getDate();
//5. 获得当前小时
var hour = date.getHours();
//6. 获得当前分钟
var min = date.getMinutes();
//7. 获得当前秒
var sec = date.getSeconds();
//8. 获得当前星期
var week = date.getDay(); //没有getWeek
// 2014年06月18日 15:40:30 星期三
return year+"年"+changeNum(month)+"月"+day+"日 "+hour+":"+min+":"+sec+" "+parseWeek(week);
}
//alert(getCurrentDate()); //解决 自动补齐成两位数字的方法
function changeNum(num){
if(num < 10){
return "0"+num;
}else{
return num;
} }
//将数字 0~6 转换成 星期日到星期六
function parseWeek(week){
var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
// 0 1 2 3 .............
return arr[week];
} //例二: 获得 当前格林时间毫秒数, 并转换成 当前日期
var date = new Date();
var time = date.getTime()-10000000000;
//Date的构造方法,可以填入格林毫秒数
var date2 = new Date(time);
//
alert(date2.toLocaleString());
8.RegExp对象(正则)
在表单验证时使用该对象验证用户填入的字符串是否符合规则.
创建正则对象方式1 参数1 正则表达式 参数2 验证模式 g global / i 忽略大小写/m多行匹配. 参数2一般填写g就可以.
用户名 首字母必须是英文, 除了第一位其他只能是英文数字和_ . 长度最短不能少于6位 最长不能超过12位
<script type="text/javascript">
//RegExp对象
// 在表单验证时使用该对象验证用户填入的字符串是否符合规则.
//创建正则对象方式1 参数1 正则表达式 参数2 验证模式 g global / i 忽略大小写. 参数2一般填写g就可以.
// 用户名 首字母必须是英文, 除了第一位其他只能是英文数字和_ . 长度最短不能少于6位 最长不能超过12位
//----------------------------创建方式1
/* var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$","g");
//
//验证字符串
var str = "bc123";
alert(reg1.test(str));// true //----------------------------创建方式2 /填写正则表达式/匹配模式;
var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/g; alert(reg2.test(str));// true
*/
//-------------------------------正则对象的方法-------------------
//test方法 ==> 测试一个字符串是否复合 正则规则. 返回值是true 和false. //-------------------------String 中与正则结合的4个方法------------------.
// macth search split replace
var str = "hello world"; //alert(str.match(/o/g)); //查找字符串中 复合正则的 内容.
//alert(str.search(/h/g));// 0 查找字符串中符合正则表达式的内容位置
//alert(str.split(/o/g)); // 按照正则表达式对字符串进行切割. 返回数组;
alert(str.replace(/o/g, "s")); // hells wsrld 对字符串按照正则进行替换.
</script>