`
summer_021
  • 浏览: 58019 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

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)
    {
    	this.name = name;
    	this.gender = gender;
    }
    
    var m1 = new member("zhangsan", "m");//实例一个对象
    var m2 = new member("lisi", "m");
    var m3 = new member("wangwu", "f");
    
    with(document)
    {
    	write(m1.name + ":" + m1.gender + "<br>");
    	write(m2.name + ":" + m2.gender + "<br>");
    	write(m3.name + ":" + m3.gender + "<br>");
    }

	function member(name, gender) {
				this.name = name;
				this.gender = gender;
				this.display = display; //指定member对象的display方法,相当于一个成员方法
			}
			
			function display() {
				var str = this.name + " : " + this.gender;
				document.writeln(str + "<br>");
			}
			
			var m1 = new member("zhangsan", "f");//定义对象的一种方式
			var m2 = new member("lisi", "f");//加不加分号都可以,但是最佳实践加上!
			var m3 = new member("wangwu", "m");

			m1.display();
			m2.display();
			m3.display();

		<script type="text/javascript">
			function mOver(object) {
				object.color = "red";
			}
			
			function mOut(object) {
				object.color = "blue";
			}
		</script>
	</head>
  <body>
  <!-- 
  		style="cursor:hand  内联样式,优先级最高" 
  		window:整个浏览器对象,里面方法可以直接用 例如alert
  		onclick="window.location.href='http://www.google.com'" :外面是双引号,里面就用单引号指定
  		onmouseover:鼠标滑倒上面的时候
  		onmouseout:鼠标离开的时候
  		this:font对应的那个元素的对象,就是当前font对象
  -->
    <font style="cursor:hand" 
    onclick="window.location.href='http://www.google.com'" 
    onmouseover="mOver(this)" onmouseout="mOut(this)">欢迎访问</font>

//JS总的就两个定时器  一个 setTimeout
			//setTimeout在指定时间之后执行指定的动作(JS的函数),JS内置函数
			function count() {
				setTimeout(sayhello(), 1000);
			}
			
			function sayhello(){
				alert("a");
			}
<input type="button" value="计时开始" onclick="count();">


//第二种定时器   setInterval 每隔一段时间执行动作
			var sec = 0;
			var timeId = setInterval("count();", 1000);//每隔1s,执行count(),在页面一加载就执行,因为是成员变量
			//innerHTML : 获得元素的html文本
			function count() {
				document.getElementById("num").innerHTML = sec++;
			}
			
			//关窗口,刷新页面,clearInterval函数  只有这3中能使 Interval终止执行
			function stopCount() {
				clearInterval(timeId);//终止定时器,参数:setInterval的返回值
			}
<font color="red" id="num">0</font>秒钟
		<input type="button" value="停止" onclick="stopCount();">

<head>
		<script type="text/javascript">
			function checkPassword(object) {
				if (object.value.length <= 4) {
					alert("密码长度过短");
			
					object.focus();//把鼠标焦点从新定位到输入域
					object.select();//将已有的内容选中  firefox不支持
				}
			}
		</script>
	</head>
	<body>
		<!--
			JS内置对象(基于浏览器的,不同浏览器提供的功能不一样):图像对象  导航对象(window)  窗口对象  屏幕对象  事件对象  历史对象 
			文件对象  描点对象 连接对象  框架对象  表单对象  位置对象
			重点: 文件对象  表单对象  
		-->
		密码:<!-- onblur:鼠标离开当前输入域 -->
		<input type="password"  onblur="checkPassword(this)">
	</body>

	//点确定就返回真,取消就返回假
			if (confirm("你想继续么?"))//confirm 内置函数,这函数的返回值决定后续流程
			{
				window.location.href = "http://www.google.com";
			} else {
				alert("Bye");
			}

 with(document)
  {
	  write("屏幕设定值<br>");
	  write("实际高度:" ,screen.availHeight, "<br>");//728  减去任务栏的高度
	  write("实际宽度:" ,screen.availWidth, "<br>");//1366
	  write("屏幕区域高度: " , screen.height, "<br>");//768
	  write("屏幕区域宽度:", screen.width, "<br>");//1366
  }

 function getEvent(event)
    {
    	alert("事件类型: " + event.type);
    }
    
    document.write("单击...");
    //document.onmousedown  整个文档对象 的 鼠标点击事件
    document.onmousedown = getEvent;
    </script>
	 <input type="button" value="我是一个按钮" id="button1">
    <script type="text/javascript">
	
	 var v = document.getElementById("button1");
	 alert(v);
	 v.onclick = clickHandler;//只能写名字 不能加括号
	
	 function clickHandler()//IE:方法里不写event参数也行,firefox不行,firefox会生成一个事件对象(名字任意)
	 //IE:用本身产生的对象event(名字固定)
	 {
		 alert(event.type);
	 }
	

 <head>
    <script type="text/javascript">
    
    var timerId;
    
    function loadPage()
    {
    	//setInterval:执行多次只能用setInterval
    	timerId = setInterval('countDown()', 1000);
    }
    
    </script>

  </head>
  
  <!-- onload:页面整体结构加载完才执行,下面的countDown() 也加载完毕 所以可以执行 -->
  <body onload="loadPage();">
    
    <script type="text/javascript">
    
    var sec = 10;
    
    function countDown()
    {
    	if(sec > 0)
    	{
    		document.getElementById("num").innerHTML = sec--;
    	}
    	else
    	{
    		clearInterval(timerId);
    		//window下的对象 不用写 window前缀
    		location.href = "http://www.google.com";
    	}
    }
    
    </script>
    
    <br>
    <font id="num" size="7">10</font>秒钟后前往
  </body>

<script type="text/javascript">
	
	function linkGetter()
	{
		//links 属性: 返回当前文档的所有链接
		//alert(document.links.length + "个搜索引擎");
		for(var i = 0; i < document.links.length; i++)
		{
			alert(document.links[i]);
		}
	}
	</script>
  </head>
  
  <body>
    
    <h1>常用的搜索引擎</h1>
    
    <a href="http://www.google.com">Google</a><br>
    <a href="http://www.baidu.com">Baidu</a><br>
    <a href="http://www.yahoo.com">Yahoo</a><br>
    <a href="http://www.sogou.com">Sogou</a><br>
    <a href="http://www.bing.com">Bing</a><br>
    
    <input type="button" value="Address" onclick="linkGetter();">
  </body>

  <head>
	<script type="text/javascript">
	
	function moveNext(object, index)
	{
		if(object.value.length == 4)
		{
			//form只有5个元素
			//第四个输入域好后  焦点就在现在的button上面
			document.forms[0].elements[index + 1].focus();
		}
	}
	
	function showResult()
	{	
		//拿到第一个form
		var f = document.forms[0];
		
		var result = "";
		
		for(var i = 0; i < 5; i++)
		{
			result += f.elements[i].value;
		}
		
		alert(result);
		
	}
	
	
	</script>


  </head>
  
  <!-- document.forms[0].elements[0].focus();  第一个form 的第一个元素 得到焦点 -->
  <body onload="document.forms[0].elements[0].focus();">
    
    <form>
    
    <!--onkeyup:键盘事件  按下松开后触发 -->
    <input type="text" size="3" maxlength="4" onkeyup="moveNext(this, 0);">-
    <input type="text" size="3" maxlength="4" onkeyup="moveNext(this, 1);">-
    <input type="text" size="3" maxlength="4" onkeyup="moveNext(this, 2);">-
    <input type="text" size="3" maxlength="4" onkeyup="moveNext(this, 3);">
    
    <input type="button" value="显示" onclick="showResult();" >
    </form>
  </body>

		<script type="text/javascript">

			var today = new Date();
			
			var expireDay = new Date();
			
			//31天的毫秒
			var msPerMonth = 24 * 60 * 60 * 1000 * 31;
			
			//重新设置时间  当前的时间 加  一个月的时候.  也就是31天后的时间.
			//cookie保存31天  31天不用重新登陆
			expireDay.setTime(today.getTime() + msPerMonth);
			
			//expireDay.toGMTString(): 返回cookie要求的时间格式.  内置方法
			//这样就把cookie写到硬盘上了			
			document.cookie = "name=zhang;expires=" + expireDay.toGMTString();
			
			document.writeln("cookie已经写到硬盘上了");
			
			document.writeln("内容是:" + document.cookie);
			
			document.writeln("有效日期是:");
			
			document.writeln(expireDay.toGMTString());
</script>

	//函数的本源是一个对象.
		
		//如果此时传两个参数 则一一对应,第二个参数不接收
		function add(number)
		{
		 	alert(number + 20);	
		}
		
		/*  这种写法和上面的写法等价.
		 * 上面的写法会转换成这种.
		 * add  指向对象的引用(函数)
		 * 
		 * 很多框架中都用这种方式定义.
		 * JS中因为没有方法的重载
		var add = function(number)
		{
			alert(number);
		}
		*/
		
		function add(number, number1)
		{
			alert(number);
			alert(number1);//传一个参数的时候 会打印:Undefined 类型  值为undefined(Undefined类型只有一种值,类似boolean只有两种)
			alert(number+20);
		}
		
		/*
		 * 这种写法和上面的写法等价
		 * 上上的add 的引用就替换成此时的add了.
		 * 两个参数的方法,可以用一个参数调用,一一对应,传一个参数就和第一个位置的参数对应
		var add = function(number, number1)
		{
			alert(number + 30);
		}	
		*/
		add(10);//只执行最后一个add方法.

<script type="text/javascript">
		//add(20);

		//Function对象(F大写):接收参数是不定长的,对于Function对象,所有的参数都是字符串类型,最后一个参数为方法体,前面的为参数  
		
		//自定义函数的本质:声明一个Function对象,函数的 名字  指向对象的引用
		var add = new Function("number", "number1", "alert(number + number1);");

		//add  指向新的引用
		var add = new Function("number", "alert(number + 20);");

		add(10, 30);
		</script>

function add(number1, number2)
		//每个函数都有隐式的对象  arguments
		{
			alert(arguments.length);//实际赋参的个数.		
			alert(arguments[0]);//实际传的值  与 方法头的形参没关系
			alert(arguments[1]);
			alert(arguments[2]);
		}	
		//add(2, 3, 4);

		function add2()
		{
			//很多框架都通过这种方式 实现重载
			if(1 == arguments.length)
			{
				alert(arguments[0]);
			}
			else if(2 == arguments.length)
			{
				alert(arguments[0] + arguments[1]);
			}
			else if(3 == arguments.length)
			{
				alert(arguments[0] + arguments[1] + arguments[2]);
			}
		}

		
		add2(3);
		add2(3, 4);
		add2(3, 4, 5);

  <head>
	<script type="text/javascript">
	function validate()
		var num = document.getElementsByName("number")[0];
		
		if(num.value.length < 1)
		{
			alert("输入不能为空!");
			
			num.focus();
			
			return false;
		}
		
		//判断每一个是否都数字
		for(var i = 0; i < num.value.length; i++)
		{
			var param = "0123456789";
			//param.indexOf 全局函数
			if(param.indexOf(num.value.charAt(i)) == -1)
			{
				alert("输入必须为数字");
				
				num.focus();
				
				return false;
			}
		}
		
		//parseInt:全局函数
		if(parseInt(num.value) < 5 || parseInt(num.value) > 15)
		{
			num.value = 10;
		}
		
		return true;
	}
	
	
	
	</script>

  </head>
  
  <body>
  	<!-- onsubmit:提交的时候做检查 -->
    <form action="end.jsp" name="form1" method="post" onsubmit="return validate();">
   请输入数字 (5——15)<input type="text" name="number"><br>
				   <input type="submit" value="submit">
    </form>
  </body>

var value = <%= request.getParameter("number")%>;//看执行时机  tomcat解析jsp的时候把值直接放在var value = 后面  
	//传递到客户端再执行下面的alert
	alert(value);
	
	function checkAll()
	{
		//获得所有复选框
		var s = document.getElementsByName("check");
		//获得全选的复选框(就上面那个框)
		var m = document.getElementsByName("all")[0];
		
		//如果上面那个框选中,下面就让全部选中
		if(m.checked)
		{
			for(var i = 0; i < s.length; i++)
			{
				s[i].checked = true;
			}
		}
		else
		{
			//上面那个不选 下面都不选
			for(var i = 0; i < s.length; i++)
			{
				s[i].checked = false;
			}
		}
	}
	
	
	//基于事件,每单击展开或收缩就产生一个事件
	function turn()
	{
		with(document)
		{
			//获得按钮
			var m = getElementById("change");
			//获得表格对象
			var n = getElementById("table");
			
			if(m.value == "收缩")
			{
				//要把表格收起来,
				//操作的对象.style(属性).对象可用的样式
				n.style.display = "none";//表格不显示出来
				m.value = "展开";//把按钮名字改为展开
			}
			else
			{
				n.style.display = "block";//展开
				m.value = "收缩";
			}
		}
	}

 <table border="1" align="center" width="60%">
    
    <tr>
    	<td>
    		<input type="checkbox" name="all" onclick="checkAll();">全选
    	</td>
		
		<td>
			<input type="button" value="收缩" id="change" onclick="turn();">
		</td>

	   </tr>
    
    </table>
    
    <% int number = Integer.parseInt(request.getParameter("number")); %>
    
    <table border="1" align="center" width="60%" id="table">
    
    <% for(int i = 1; i <= number; i++)
    {%>
    
    <tr>
    	<td>
    		<input type="checkbox" name="check">
    	</td>
    
    	<td>
    		<%= i %>
    	</td>
    </tr>
    <%} %>
    
    </table>

分享到:
评论

相关推荐

    李立超JavaScript基础篇笔记

    JavaScript,简称JS,是由Brendan Eich在1995年创造的一种高级编程语言,最初目的是为了增强网页的交互性,特别是在前端进行表单验证。...这些类型构成了JS编程的基础,理解和掌握它们是学习JavaScript的第一步。

    Gwt-ext学习笔记之基础篇

    ### Gwt-ext学习笔记之基础篇 #### 一、安装CypalStudio工具 为了能够开始Gwt-ext的学习之旅,首先需要确保开发环境已经搭建好。CypalStudio是一款非常实用的工具,它能帮助开发者更高效地进行GWT项目的开发。 1....

    web学习笔记 —— javascript基础

    这篇“web学习笔记——javascript基础”将带你走进JavaScript的世界,理解其基本概念和常用语法。 JavaScript语法基础: 1. 变量:在JavaScript中,变量用于存储数据。声明变量使用`var`关键字,例如`var myVar = ...

    Web前端JavaScript基础学习笔记

    这个学习笔记是我基于B站视频Mosh的JavaScript基础篇学习记录的一些笔记和代码。 内容不多,也就作为一个大家学习的参考。 免费的笔记,如果你喜欢,请和大家分享这个资源,谢谢。 视频链接:...

    Gwt-Ext学习笔记之基础篇- www.hxiaseo.cn技术网站

    标题中的"Gwt-Ext学习笔记之基础篇"指的是关于Gwt-Ext的初级教程,这是一种基于Google Web Toolkit (GWT) 的扩展库,用于构建富互联网应用程序(RIA)。Gwt-Ext提供了丰富的用户界面组件,使得开发者可以利用Java语言...

    前端学习笔记-黑马程序员JS

    "前端学习笔记-黑马程序员JS" ...这篇前端学习笔记涵盖了 JavaScript 的基础知识,包括变量、数据类型、运算符、流程控制、数组、函数、对象、内置对象和 Web APIs 等知识点,为学习 JavaScript 提供了系统的指导。

    javascript学习笔记.docx

    这篇学习笔记主要涵盖了JavaScript的基础语法和客户端JavaScript的相关知识。 1. **JavaScript基本语法**: - **变量声明**:未声明的变量尝试读取时会产生错误,而写入未声明的变量会创建一个全局变量。 - **...

    JavaScript李立超基础篇笔记.docx

    总的来说,李立超的JavaScript基础篇教程涵盖了语言的基础知识,包括其历史、特点、基本语法、数据类型、变量和标识符的使用,以及代码编写的位置和方式,是学习JavaScript入门的宝贵资料。通过深入理解和实践这些...

    Javascript基础学习笔记(菜鸟必看篇)_.docx

    这篇基础学习笔记主要涵盖了JavaScript的一些核心概念,对于初学者来说是非常实用的引导资料。 1. 变量: 变量是JavaScript中存储数据的基础单元,它们可以用来保存各种类型的信息。变量需要先声明后使用,声明时...

    js模块编程学习笔记

    本篇笔记主要基于阮一峰的博客,探讨了两种常见的JS模块规范:CommonJS和AMD,以及如何使用require.js进行模块管理。 1. **CommonJS**:这是Node.js服务器端编程广泛采用的模块化标准。在CommonJS中,`require()`...

    Redis全套学习笔记 (带章节目录) 完整版pdf

    本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...

    JavaScript 入门 新手学习笔记

    这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...

    JavaScript高级程序设计2,学习笔记---第一篇

    这篇学习笔记将带你探索JavaScript的核心概念,包括变量、数据类型、控制流、函数、对象和类等,这些都是构建复杂应用程序的基础。 首先,我们要了解JavaScript的基础语法。在JavaScript中,变量是存储数据的容器,...

    JavaScript学习笔记

    JavaScript学习笔记主要涵盖...通过阅读和理解这篇"JavaScript学习笔记",你可以逐步提升JavaScript技能,从而更好地开发网页和应用程序。记得实践是检验真理的唯一标准,多写代码,多解决问题,才能真正掌握这门语言。

    蓝杰JavaScript学习笔记

    《蓝杰JavaScript学习笔记》是一份综合性的JavaScript学习资料,主要涵盖了JavaScript在网页动态操作、DOM操作以及事件处理等方面的基础知识。这篇笔记通过多个实例文件,如`dynamicCreateTable.htm`、`...

    Yui_ext 学习笔记

    这篇学习笔记主要介绍了 Yui_ext 的基础知识,适合对 JavaScript 和 HTML DOM 有一定了解的初学者。 首先,了解 Ext 库的基本概念。Ext 提供了一个强大的框架,用于创建具有丰富用户体验的网页应用,其核心是 ...

    JavaScript学习笔记之总结与回顾(学习JavaScript基础知识看这一篇就够了,文章总字数2.8万)源码

    这篇“JavaScript学习笔记之总结与回顾”涵盖了从基础到进阶的广泛内容,总计2.8万字,旨在为学习者提供一个全面的理解JavaScript的平台。 在学习JavaScript时,首先会接触的是基本的语法结构,包括常量、变量和...

    Vue学习笔记之分享篇.zip

    在"Vue学习笔记之分享篇.zip"这个压缩包中,我们可以期待获取到关于Vue.js的学习资料,包括文档、安装程序以及可能的代码示例。 首先,`Vue.docx`可能是作者整理的Vue学习笔记,里面可能包含了Vue的基础概念、核心...

    JavaScript零基础学习(超详细)

    根据pink老师的课程做的学习笔记 学习JavaScript看这篇就够了

    前端基础学习笔记,pdf

    这篇学习笔记涵盖了JavaScript的基础知识,以及与前端开发相关的其他重要概念。 JavaScript是ECMAScript的一个实现,是一种解释型的、基于原型的、动态类型的编程语言。它的发展史与浏览器密切相关,从最初的...

Global site tag (gtag.js) - Google Analytics