JavaScript(上)
<!-- 如果在script标签中使用了src属性。必须注意的是不要在该标签中在定义js代码。 --> <script type="text/javascript" src="hello.js"></script> <script type="text/javascript"> alert("hello javascript"); </script>
hello.js
alert("hello haha");
<script type="text/javascript"> //1,js的语法。 /* 程序设计语言:就是表现形式不同。 1,标识符, 2,注释。 3,常量变量。 4,运算符。 5,语句。 6,函数。 7,数组。 */ //变量。关键字var完成,没有明显类型。 /* var x = 4; x = "abc"; x = true; x = 'qqqqq'; alert("x="+x); */ //var y; //alert("y="+y);//y=undefined //alert(3140/1000*1000);//3140 //alert("12"-1);//11 //alert("qq"-1);//NaN //alert(typeof(123));//number //alert(typeof(3.45));//number //alert(typeof("abc"));//string //alert(typeof(true)=="boolean");//boolean //alert(false+2);//false就是0或者null。非0非null就是true。默认1. //语句。 //if。 /* var x = 3; if(4=x){//对数值判断时,将常量放左边。 alert("yes"); }else{ alert("no"); } switch与java一致. */ //循环。 /*var x = 1; while(x<3); { alert("x="+x); x++; } */ /* for(var x=0; x<3; x++) { alert("x="+x); } */ //System.out.println("hello world"); //document.write("hello world"); //九九乘法表。 document.write("<table>"); for(var x=1; x<=9; x++){ document.write("<tr>"); for(var y=1; y<=x; y++){ document.write("<td>"+y+"*"+x+"="+y*x+"</td>"); } document.write("</tr>"); } document.write("</table>"); </script>
<script type="text/javascript"> //js中的函数。 //通过关键字function定义。 function show(){ alert("show run"); } //show(); function showParam(){ //函数内部内置了一个参数数组。内部存储的都是传递进来的实参。arguments for(var x=0; x<arguments.length; x++) alert(arguments[x]); } //注意:一定定义时,有几个参数就传递几个参数。 //showParam(3,4,5,6); function showValue(){ return 10; } //js中的函数在内存中其实是一个Function类型的对象。而函数名其实就是该对象的引用。 //var sum = showValue();//调用showValue函数,并用sum变量接收该函数运算完的结果。 var sum = showValue;//将showValue应用的地址赋值给sum。sum也就指向了该函数对象。 //alert("sum="+sum());//sum=10; //alert("sum="+sum);//将sum指向函数对象转成字符串(就是调用对象的toString()))函数对象的字符串表现形式就是定义的函数的表现形式。 //动态函数,其实是使用了js中内置的对象Function完成的函数建立。 var func = new Function("x,y","var sum=x+y;return sum;");//这其实就是在创建函数对象。 /*动态函数和该函数的功能一致。 function func(x,y) { var sum = x+y; return sum; } */ var sum = func(5,8); //alert(sum); //匿名函数。没有名字,函数的简写。一般用于给事件定义功能,便于简化。 var method = function() { alert("over"); } /* function abc() { alert("over"); } var method = abc; method(); */ //变量的作用域。只要在script标签中直接定义的变化都是全局的。都可以访问。 //var num = 5; for(var n=0; n<2; n++){//n变量也是全局的。 //alert("n="+n); } function showVar(){//函数内定义的变量就是局部变量。在函数内有效。 var k = 9; } //alert("k="+k); var m = 4; function demo(m){ m = 9; } demo(m); alert("m="+m);//m=4 </script>
<script type="text/javascript"> //js中的数组。 /* 特点: 1,容器用于存储数组。 2,长度是可变的。 3,元素类型是任意的。 */ //定义数组。 var arr = [3,6,8];//直接明确数组的长度和内容。 arr[5] = "abcd"; arr[2] = true; println(arr.toString()); function showElement(arr){ var str = "["; for(var x=0; x<arr.length; x++){ if(x!=arr.length-1){ str+=arr[x]+","; }else{ str+=arr[x]+"]"; } } println(str); } function println(str){ document.write(str+"<br/>"); } showElement(arr); //数组的另一种定义方式。使用Array完成的。 var arr2 = new Array(3,9);//var arr2 = []; var strs = ["abcd","aaa","cba","zz","hehe"]; println(strs); sortArray(strs); println(strs); function sortArray(strs){ for ( var x = 0; x < strs.length - 1; x++) { for ( var y = x + 1; y < strs.length; y++) { if (strs[x] > strs[y]) { swap(strs, x, y); } } } } function swap(strs,x,y){ var temp = strs[x]; strs[x] = strs[y]; strs[y] = temp; } </script>