第三节(JavaScript 对象、日期,函数)
JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等 在 JavaScript 中,对象是拥有属性和方法的数据 属性和方法 (属性是与对象相关的值、方法是能够在对象上执行的动作) 例: 学生 student student属性: student.name = 美女; student.age = 18 ; student.sex = 女 ; student.isMarry = true ;
student的方法: student.eat() // 吃饭 student.sleep() // 睡觉 student.ddd() // 打豆豆 student.baby() // 抱孩子 学生的属性包括姓名、年龄、性别、婚否等 所有学生都有这些属性,但是每位同学的属性都不尽相同 学生的方法可以是吃饭、睡觉、打豆豆、抱孩子等 所有学生都拥有这些方法,但是它们被执行的过程和结果都不尽相同。
JavaScript 中的对象: 在 JavaScript 中,对象是数据(变量),拥有属性和方法 声明一个Javascript变量 var name = “Ming" ; 创建了一个 JavaScript 字符串对象 , 字符串对象拥有内建的属性 length。对于上面的字符串,length 的值是 4 字符串对象同时拥有若干个内建的方法. 属性:name.length = 4 ; 方法:name.indexOf() , name.replace() , name.search() 在面向对象的语言中,属性和方法常被称为对象的成员
自己创建JavaScript 对象: JavaScript 中的几乎所有事务都是对象:字符串、数字、数组、日期、函数,等 例: people = new Object() ; people.name = “美女"; people.age = 18; people.sex = 女; people.isMarry = 是; document.write(person.name + " is " + person.age);
访问对象的方法 :
对象名.方法名
例: var msg = "my name is arry" ; (使用 String 对象的 toUpperCase() 方法来把文本转换为大写)
var text= msg.toUpperCase() ;
<!doctype html>
<html>
<head>
<!--声明当前页面的编码集:charset=gbk,gb2312(中文编码),utf-8国际编码-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--当前页面的三要素-->
<title>创建JavaScript 对象 </title>
<meta name="Keywords" content="关键词,关键词">
<meta name="description" content="">
<!--css,js-->
<style type="text/css">
*{margin:0;padding:0;}
</style>
</head>
<body>
<script type="text/javascript">
// 自己创建Javascript对象
people = new Object();
people.name = "美女";
people.sex = '女';
people.age = 18; // 代表数字类型
people.isMarry = '是';
// 取值方法:
// 对象名.属性名
document.write(people.name+"是一个漂亮的"+people.sex+"孩子,今年"+people.age+"岁,但是她已经结婚了,你们都没有机会了! 哈哈 .....<br /><br />");
// 访问对象的属性
var msg = "my name is ming !";
// 对象名.属性名
var val = msg.length;
document.write("msg字符串的长度:"+val);
// 访问对象的方法
var txt = msg.toUpperCase();
document.write("<br /><br />转换前:"+msg+"<br /><br />转换后的文本:"+txt);
</script>
</body>
</html>
1:对象的检索方式有两种: var book = {"name":"三毛流浪记","price":10}; 第一种:book.name ="三毛流浪记"; 第二种:book["name"] = "三毛流浪记", book["price"] = 10; :2:对象的检索方式有两种: var book = {"name":"三毛流浪记","price":10}; 第一种:book.name ="三毛流浪记xx"; 第二种:book["name"] = "三毛流浪记xx", book["price"] = 100; 3:对象的反射使用:typeOf var book = {"name":"三毛流浪记","price":10,"callabck":function(){ alert(1123); }}; typeof book.name ==string typeof book.price == 10 typeof book.callback == function 4:对象的赋值使用:delete var book = {"name":"三毛流浪记"} book.name = "想学习";//更新 book.price = 10;//创建 book.time = "2012-12-12"//创建 5:对象的循环使用:for in var book = {"name":"三毛流浪记",price:10} for(var key in book){ alert("键:"+key+"对应的值是:"+book[key]); } <script type="text/javascript"> /* javascript对象有哪一些呢: 1:对象,object 2:日期 Date 3:数组,Array 4:正则表达式Regex Regex 5:函数 function */ /* 对象的定义: 如:var book = {};//定义一个空对象 var book2 = {key:value};//HashMap var book2 = {"name":"Javascript进阶","price":10,"date":"2012-12-12"}; */ //var age = 20;//number //var age2 = 20;//string //alert(age == age2);//true //alert(age === age2);//false var people = { name : "Ming", age : 20, test : function(){ alert("对象里面定义了方法哦!"); } }; //1:对象的检索方式两种 //alert("姓名是:"+people.name+",年龄:"+people.age); //2:对象的第二种方式获取 //alert("姓名是:"+people["name"]+",年龄:"+people["age"]); //2对象的更新 //people.name ="IOY"; //people.age = 23; //people["name"] ="IOY123"; //alert("姓名是:"+people.name+",年龄:"+people.age); //3:对象的反射typeof就是判断属性对应的数据类型 //alert(typeof people);//object //alert(typeof people.name)//string //alert(typeof people.age)//number //alert(typeof people.test)//function //4:对象里面方法的调用:people.test(); //5:对象的创建 //var book = {};//定义一个空对象 //book.name = "三毛流浪记!"; //book.price = 23; //alert(book.name+"==="+book.price); //6对象删除 delete //var book2 = {"name":"想你了!"}; //alert("对象book2删除之前是:"+book2.name);//想你了! //delete book2.name; //alert("对象book2删除之后是:"+book2.name);//undefined //book2.name = "我有复活了!!"; //alert("对象book2删除之后复活了的值是:"+book2.name);//undefined //一个对象里面的属性一定被删除了,只不过是值被赋予了undefined而已。它没有真正意义上的把name属性给剔除. //对象的值获取方式,for in //var classroom = {room:"教室一",number:48,code:"S10001"}; //for(var key in classroom){ // alert("key值是:"+key+"; 对应的值是:"+classroom[key]); //} /*判断是否为数组*/ function is_array(value){ return value && typeof value === "object" && value.constructor === Array; } function is_array2(value){ return value && typeof value ==="object" && typeof value.length ==="number" && typeof value.splice ==="function" && !(value.propertyIsEnumerable("length")) } </script>
日期: 1:Date构造函数: 当前时间 new Date(); Tue Sep 11 2012 15:37:46 GMT+0800 (中国标准时间) new Date(3600 * 24 * 1000); Fri Jan 02 1970 08:00:00 GMT+0800 (中国标准时间) 除了构造函数外,Date.UTC()也用于构造日期,但是并不返回Date,而是返回从1970-01-01开始的毫秒数,比如: 1328054400100, 即2012-01-01 00:00:00 0100 Date.UTC(2012, 1, 1, 0, 0, 0, 100); 2:字符串转日期: Date.parse(string)方法并不是返回Date,而是返回整数 Date.parse("Jul 8, 2005"); Date.parse("2005-07-08"); Date.parse("2005/07/08"); 3:日期转字符串 toString(); // Tue Sep 11 2012 15:09:01 GMT+0800 toTimeString(); // 15:09:34 GMT+0800 toDateString(); // Tue Sep 11 2012 toGMTString(); // Tue, 11 Sep 2012 07:10:05 GMT toUTCString(); // Tue, 11 Sep 2012 07:10:17 GMT toLocaleString(); // 2012年9月11日 15:10:31 toLocaleTimeString(); // 15:10:45 toLocaleDateString(); // 2012年9月11日 4:Get系列方法 Date提供了一系列Get和Set方法,可以获取和设置年份、月份、日期、小时等等信息,并且提供了本地时间和UTC时间两套方案。本地时间方法如下: var date = new Date(); date.getDate(); // 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 date.getDay(); // 从 Date 对象返回一周中的某一天 (0 ~ 6)。 date.getMonth(); // 从 Date 对象返回月份 (0 ~ 11)。 date.getFullYear(); // 从 Date 对象以四位数字返回年份。不用使用getYear()。 date.getHours(); // 返回 Date 对象的小时 (0 ~ 23)。 date.getMinutes(); // 返回 Date 对象的分钟 (0 ~ 59)。 date.getSeconds(); // 返回 Date 对象的秒数 (0 ~ 59)。 date.getMilliseconds(); //返回 Date 对象的毫秒(0 ~ 999)。 date.getTime()方法返回从1970-01-01开始到现在的毫秒数 <script type="text/javascript"> var size = 125118227; alert(tm_countFileSize(size)); tm_forbiddenSelect(); /* Date篇: 1:获取当前日期:new Date(); 一周的第一天是:星期日 一周最后一天是: 星期六 month:0-11 */ var date = new Date(); //Date date = new Date();//java document.write(date); //Wed Jul 2 22:08:04 UTC+0800 2014 --格林士日期格式 //星期三(Wed)月份July七月 日期2 时间22:08:04 UTC+0800(时区) 年份2014 //获取日期的年份 var year = date.getYear();//缩率版的年份 var fullYear = date.getFullYear(); //获取月份 var month = date.getMonth()+1; //获取日期 var day = date.getDate(); if(month <10)month = "0"+month; if(day <10)day = "0"+day; document.write("<br>当前的年月日是:"+fullYear+"-"+month+"-"+day); //时分秒 var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); document.write("<br>当前的日期是:"+fullYear+"-"+month+"-"+day+" "+hour+":"+minute+":"+second ); //getTime()--获取日期的毫秒数 var time = date.getTime(); var diffTime = time - 24 * 60 * 60 * 1000; var date2 = new Date(diffTime); //二十四小时制日期格式:yyyy-MM-dd HH:mm:ss //十二小时制日期格式:yyyy-MM-dd hh:mm:ss var dateString = date2.format("yyyy-MM-dd EEE hh:mm:ss.S"); document.write(dateString); var dateString = "2013-12-12 12:12:12"; dateString = dateString.replace(/-/g,"/");//把-替换成/ var dateString = new Date(dateString); var date = new Date(dateString); //alert(date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate()); alert(getTimeFormat(date)); </script>
<body>
<script type="text/javascript">
/*
string :
toLowerCase() 把字符串中的文本变成小写
toUpperCase() 把字符串中的文本变成大写
split(delimiter)将字符串分配为数组
substr(startIndex, length) 从startIndex与,取length个字符
substring(startIndex, endIndex) 从startIndex和endIndex之间的字符,没有包含endIndex
indexOf(searchString, startIndex) 返回字符串中第一个呈现指定字符串的地位
lastlndexOf(searchString, startIndex) 返回字符串中最后一个呈现指定字符串的地位
charAt(index) 返回指定索引处的字符
replace(regex, newString)将字符串中的某些字符替代成其它字符
Math
PI:3.1415926.....
abs(x) 返回数字的相对值
ceil(x) 返回 x 四舍五入后的最大整数
floor(x) 返回 x 四舍五入后的最小整数
max(x,y) 返回 x 和 y 之间较大的数
min(x,y) 返回 x 和 y 之间较小的数
random() 返回位于 0 到 1 之间的随机函数
round(x) 四舍五进后与整
pow(x,y) 返回 y^x 的值
*/
var str = "ABCDEFghlm5644";
str = str.toLowerCase();
//alert("字符串转成小写:"+str);
str = str.toUpperCase();
//alert("字符串转成大写:"+str);
var str2 = "1,2,3,4,5,6";
var str3 = "单晨#KID#白羊#东东";
var arr = str2.split(",");
var arr2 = str3.split("#");
var str4 = "sddd1s1dfDDDDD";
//alert(str4.indexOf("1"));//如果找到返回当前字符的位置,否则返回-1
//alert(str4.indexOf("d"));
//alert(str4.lastIndexOf("d"));
//alert(str4.charAt(0));//s
//alert(str4.charAt(1));//d
//for(var i=0;i<str4.length;i++){
// alert(str4.charAt(i));
//}
//str4 = str4.replace(/d/ig,"c");//replaceAll(i不区分大小写g全局替换)
//alert(str4);
//alert(Math.PI);
////alert(Math.abs(5));
//alert(Math.ceil(2.6));//3
//alert(Math.floor(9.87));//9
//alert(Math.min(9,1,0,123));//0
//alert(Math.max(9,800,8888,10));//8888
alert(Math.random(10));//
</script>
</body>

浙公网安备 33010602011771号