日期:2014-05-16  浏览次数:20362 次

JS学习笔记_基础篇
var globe = "全局变量"; //globe是全局变量,不管加不加var
	test();
	function test()//js 方法写法:function(固定)+方法名字
	{
		var local = "局部变量"; //local是局部变量
		//如果在函数中声明时不加var 也会变成全局变量。 js的诡异
		document.writeln(globe);//将变量值写到页面上
		document.writeln(local);
	}
	
	document.writeln(globe);
	document.writeln(local);
	
	function test2(){
		var i = 3;
		alert(i);
		i=true;//js是弱类型
		alert(i);
	}



	with (document) {//后面的 write都是 document对象下的方法,用了with不用挨个 document.write()...
				write("<ul>");
				write("<li>hello</li>");
				write("<li>world</li>");
				write("<li>hello world</li>");
				write("</ul>");
			}

 function member(name, gender) //可以看成构造函数(可以new,生成的都是方法的实例,没有class概念),也可以看成普通函数 不能指定参数的类型,直接写参数名字
   {
	   this.name = name;
	   this.gender = gender;
   }
   
   function showProperty(obj, objString)
   {
	   var str = "";
	   
	   for(var i in obj)//遍历对象里面的每个属性,obj 传进来是一个对象
	   {
		   str += objString + "." + i + " = " + obj[i] + "<br>";
	   }
		   
	   return str;//带返回值
   }
   
   var obj = new member("蛋蛋", "男"); //建立对象实例
   
   document.writeln(showProperty(obj,"person"));

 var date = new Date();//Date 内置对象
    var day = date.getDay();//0-6 0表示星期天
    if(0 == day)
    {
    	day = "日";//星期0 改为星期天
    }//date.getMonth()//返回的是0-11 表示月份
    //date.getYear()  是减去1900后的
    document.writeln("现在时刻: " + (date.getYear() + 1900) + "年 " + (date.getMonth() + 1) + "月" + 
    	date.getDate() + "日" + " 星期" + day + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds())
   // document.writeln(date)

 //var fruit = new Array("苹果", "鸭梨", "橙子");
    
    //var fruit = ["苹果", "鸭梨", "橙子"]; //推荐使用,没有new Array() 直接赋值
    
    var fruit = new Array();//数组对象Array JS内置,可自由扩容,里面放的数据类型可以不同
    //new Array(); 调用无餐的构造方法,括号可以不写,但是调用有参数的构造方法必须写括号
    fruit.push("苹果");//数组可以当作队列或者栈来用,让数组里逐个增加元素,下标也是0开始的
    fruit.push("鸭梨");
    fruit.push("橙子");
    fruit.push("香蕉");
    fruit.push("西瓜");
	
    for(var i = 0; i < fruit.length; i++)
    {
    	document.writeln("fruit[" + i + "] = " + fruit[i] + "<br />")
    }

 var fruit = ["苹果", "香蕉", "桔子"];
     fruit.pop();//从队尾去掉一个元素
    with(document)
    {
    	write("<ul>");
    	write("<li>" + fruit.join() + "</li>");//苹果,香蕉,桔子(默认逗号分割)
    	write("<li>" + fruit.join(":") + "</li>");//苹果:香蕉:桔子
    	write("<li>" + fruit.toString() + "</li>");//苹果,香蕉,桔子
    	write("<li>" + fruit.reverse().join() + "</li>");//桔子,香蕉,苹果
    	write("<li>" + fruit.valueOf() + "</li>");//桔子,香蕉,苹果(数组引用,前面已经倒序过了)
    	write("</ul>");
    }

 var fruit = new Array(3);
    fruit[0] = new Array("苹果", 2);//二维数组
    fruit[1] = new Array("桔子", 3);
    fruit[2] = new Array("西瓜", 4);
    for(var i = 0; i < fruit.length; i++)
    {
    	for(var j = 0; j < fruit[i].length; j++)
    	{
    		document.write("fruit[" + i + "][" + j + "] = " + fruit[i][j] + "<br>");
    	}
    	
    	document.write("<br>");
    }

var str = "javascript";
	var num = 1234;
	
	with(document)
	{
		write(str.toUpperCase() + "<br>");//转成大写
		write(num.toString().charAt(2), "<br>", "<br>");//取索引2的字符,任何元素都有toString()
		write(str.substring(0,4), "<br>");//0(包含)截取到4(不包含)的位置,write方法:逗号和加号都是拼接
	}

function isEmail()
	{
		//var emailValue = document.getElementsByName("email")[0].value;  也可以用下面那种方式取值
		emailValue = document.getElementById("emailId").value;
		if(emailValue.indexOf("@") == -1)//返回字符串的索引位置,没有就返回-1
		{
			alert("请填写正确的Email地址");
		}
		else
		{
			alert("ok");
		}
	}

function member(name, gender)
    {