java学习笔记31

1、javaScript是基于对象(而不是面对对象)和事件驱动的脚本语言,主要应用在客户端(网页)所以就可以和html想结合。

js里面的全是对象。java是面向对象,面向对象描述问题,使角色从执行着到指挥者的转变,不断指挥对象做事情


2、js和html想结合

不加标签就是把代码当做纯文本,当你加了<script type = ”javascript“>后就会调用javascript的解析器来把这句话按照javascript语言来解析。


3、javascript的语法

语句:例如if语句这种的。  


4、js的变量

js是弱类型,所以var x =3,一个关键字var就代表了变量的意思。但是在java中就要制定数据的类型int x = 3。其实由于是弱语言,var不写也是ok的,有时候分号不写也是可以的。


js中单引号和双引号都代表着字符串,所以‘c’也是字符串,没有字符的概念。

运算时+是相连接,-确实将字符串转为数字,相运算

javascript中单与&和单或|都是位操作,显示结果为1或0。取反!,双与&&,双或||运算后的结果是true和false

5^3就是5异或3

	
		</script>
		
		
		
		<script type="text/javascript">
			/*
			 * 运算符。
			 * 1,算术运算符。
			 * 		+ - * / % ++ --
			 * 2,赋值运算符。
			 * 		=  += -= *=  /= %= 
			 * 3,比较运算符:运算的结果要么是false要么是true。
			 * 		> < >= <= != ==
			 * 		
			 * 4,逻辑运算符。用来连接两个boolean型的表达式。
			 * 		!  &&  ||
			 * 5,位运算符。
			 * 		&  |  ^  >> << >>>
			 * 6,三元运算符。
			 * 		? :
			 */
			
			//1,算术运算符演示。
			var a = 3710;
//			alert("a="+a/1000*1000);//a=3710;
			
			var a1 = 2.3,b1 = 4.7;
//			alert("a1+b1="+(a1+b1));

//			alert("12"-1);//11
//			alert("12"+1);//121
//			alert(true+1);//2//因为在js中false就是0,或者null,非0,非null。就是true。默认用1表示。
//			alert(2%5);//2
			
			var n = 3,m;
			m = ++n;
//			alert("n="+n+",m="+m);
//		=================================================
			
			// 2,赋值运算符
			var i = 3;
//			i = i+2;
			i+=2;
//			alert("i="+i);

//		=================================================
			// 3,比较运算符。
			var z = 3;
//			alert(z!=4);
	
//		=================================================
			// 4,逻辑运算符。
			var t = 4;
			
//			alert(t>7 && t<6);
//			alert(!true);

//		=================================================
			// 5,位运算符。
			var c  = 6;
//			alert(c&3);//2

//			alert(5^3^3);//5

//			alert(c>>>1);//6/2(1);
//			alert(c<<2);//24
			
//		=================================================
			//6,三元运算符。	
			
//			3>0?alert("yes"):alert("no");
//			alert(3>10?100:200);
			
		
		
		</script>
		
		
		
		<script type="text/javascript">
			/*
			 * 一些细节:
			 * 1,undefined:未定义。其实它就是一个常量。
			 */
			var xx;
//			alert(xx);//undefined
//			alert(xx==undefined);//true
			
			//要想获取具体的值的类型。可以通过typeof来完成。
//			alert(typeof("abc")=='string');//string
//			alert(typeof(2.5)=='number');//number//判断类型。
//			alert(typeof(true));//boolean
//			alert(typeof(78));//number
//			alert(typeof('9'));//string
		</script>
		

变量没有赋值,操作变量就会包undefine的错误。

java中不允许if(x=3),不小心写成这样会报错,但是在javascript中if(x=3)会执行。所以在javascript中通常写成if(4==x)这样,就算不小心写成if(4=x)就会报错。

java中switch只能选择short,int long,char这四个类型的数据。

就算default写在了第一个的位置,也为先执行第一个case。



我们一般在<script>标签中写入javascript语句,如果想在javascript语句中添加标签,是的页面有标签的效果,就必须通过document.write("<br/>")的形式将这些文本写进网页,网页会用html核心解析这些带有标签的文本,还原出标签的效果。




效果图如下所示:


13、javascript的数组

数组是可变长度的,而且装入的元素可以是任意类型的。


因为javascript中数组是可变长度的,所以var arr=[ ] 这里没有指定长度。

 14、javascript函数

javascript若类型,函数不写返回函数类型



javascript函数中传入的参数都存储到数组中去了,不会丢的。虽然可能传入的比规定的还多。


如果不小心把函数的括号漏掉了,相当于把函数对象的引用付给了sum,sum指向堆中的函数对象。打印时,相当于调用了toString方法,就把函数对象的代码保留格式以字符串的形式输出了。



上下两种定义方法效果是一样的。下面的方法是匿名函数的方法。


javascript中打印数组,会直接把数组的元素转为字符串打印出来(不会打印引用值),中间都好间隔。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=GBK">
		<title>Untitled Document</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			 * 综合练习:
			 * 1,定义功能,完成对数组的最值获取。
			 * 
			 * 2,对数组排个序。
			 * 
			 * 3,对数组查个找。
			 * 
			 * 4,对数组元素进行反转。
			 * 
			 */
			
			var arr = [66,13,37,21,89,17];
			
			//取最值。
			function getMax(arr){
				
				var max = 0;
				
				for(var x=1; x<arr.length; x++){
					if(arr[x]>arr[max])
						max = x;
				}
				
				return arr[max];
				
			}
			
			
			var maxValue = getMax(arr);
			
//			alert("maxValue:"+maxValue);

			//排序。 
			function sortArray(arr){
				for(var x=0; x<arr.length-1; x++){
					for(var y=x+1; y<arr.length; y++){
						if(arr[x]>arr[y]){
							swap(arr,x,y);
						}
					}
				}
			}
			//数组中的元素位置置换。
			function swap(arr,x,y){
				var temp = arr[x];
				arr[x] = arr[y];
				arr[y] = temp;
			}
			
			
			
			
			function println(val){
				document.write(val+"<br/>");
			}
//			document.write("排序前:"+arr);
			println("排序前:"+arr)
//			sortArray(arr);
			println("排序后:"+arr)
			
//			document.write("排序后:"+arr);
			
		</script>
		
		
		<script type="text/javascript">
			/*
			 * 3,对数组查个找。
			 * 
			 * 4,对数组元素进行反转。
			 */
			//查找。
			function searchElement(arr,key){
				
				for(var x=0;x<arr.length; x++){
					if(arr[x]==key)
						return x;
				}
				return -1;
			}
			
			//折半,必须有前提。必须是有序的数组。
			function binarySearch(arr,key){
				
				var max,min,mid;
				min = 0;
				max = arr.length-1; 
				
				while(min<=max){
					mid = (max+min)>>1;
					
					if(key>arr[mid])
						min = mid + 1;
					else if(key<arr[mid])
						max = mid - 1;
					else
						return mid;
				}
				return -1;
				
			}
			
			//对数组的反转。 
			function reverseArray(arr){
				for(var start=0,end=arr.length-1; start<end; start++,end--){
					swap(arr,start,end);
				}
			}
			reverseArray(arr);
			println("反转后:"+arr);
			
		</script>
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值