javascript-老毕版

来源:互联网 发布:复制淘宝口令怎么使用 编辑:程序博客网 时间:2024/05/20 00:51

简述

javascript是基于对象和事件驱动的语音。

javascript是弱类型的语音。没有类型。

在客户端,只要有浏览器就可以简析,不允许直接访问本地硬盘。


javascript 和 html 相结合:

第一种内嵌式,可以写在页面的任何地方

<script type="text/javascript">

</script>

第二种链接式:

<script type="text/javascript" src="1.js"></script>


基本语法:

用弹窗演示结果:

<script type="text/javascript">alert("kkk");</script>


定义变量:

<script type="text/javascript">//没有类型,都用var申明变量。var x = 3;      x = "abc";   // 单引号双引号都可以表示字符串,没有字符概念,双引号内部可以嵌套单引号。但是不可以不加引号,不加引号就被当作变量名了。alert(x);//当变量没有初始化,就显示undefined。//在进行运算的时候,x = 3250,x / 1000 * 1000 还等于 3250,而java中等于3000。这是和java的不同之处。</script>



if语句:

<script type="text/javascript">var x = 3;if ( 3==x )alert("yes");elsealert("no");//javascript中,非0值为真,通常用1表示。0为假。//true+1 = 2;//null为假,非空为真。//如果要 连接两个布尔型表达式,用 && 和 || 。//用 & 和 | 的时候,会对比较完的结果进行位运算(二进制运算)。</script>



switch语句:

<script type="text/javascript">var x = "abcd";switch(x){case "abc":alert("a");break;case "aa";alert("b");break;default:alert('c');break;}</script>

while循环:

<script type="text/javascript">var x = 1;while ( x < 3 )   //千万不要写死循环{alert("x="+x);x++;}</script>


for循环:

<script type="text/javascript">for(var x=0;x<3;x++)   //注意式 var 申明。{alert("x="+x);}</script>

<script type="text/javascript">var sum = 0;for(var x = 1; x<=10; x++){sun += x;}alert("sum="+sum);</script>

<script type="text/javascript">var sum = "";for(var x=1; x<=4; x++){if(4==x)sum = sum + "x=" + x;elsesum = sum + "x=" + x + ",";}//alert(sum);document.write("< font color='red' >" + sum + "</font>");    //写在页面上。html标签要用双引号引起来。</script>

用表格形式显示一个99乘法表:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>99</title><style type="text/css">table{width:800px;border-collapse:collapse;}table th{border:#0066cc 1px solid;}</style></head><body><script type="text/javascript">document.write("<table>");for(var x=1; x<=9; x++){document.write("<tr>");for(var y=1; y<=x; y++){document.write("<th>" + y + " * " + x + " = " + y*x + "</th>");}document.write("</tr>");}document.write("</table>");</script></body></html>


数组:

<script type="text/javascript">var arr = [ “abc”, 1, true, 8.9 ];arr[6] = 100;for(var x=0; x<arr.length; x++){alert( arr[x] );}</script>//在javascript中,数组就是集合,是可变长度的。不存在越界。//弱类型,没有类型,什么都可以装。//是javascript最常用的容器。



在没有明确元素的情况下,还可以这样new数组:

<script type="text/javascript">var arr = new Array();   //可以随时往数组里添加元素。</script>



对数组元素进行排序:

<script type="text/javascript">var arr = [ 5, 1, 2, 7, 4, 9, 3 ];for(var x=0; x<arr.length-1; x++){for(var y=x+1; y<arr.length; y++){if( arr[x] > arr[y] ){var temp = arr[x];arr[x] = arr[y];arr[y] = temp;}}}for(var x=0; x<arr.length; x++){alert( arr[x] );}</script>



函数:

用function关键字 + 函数名 来定义函数:

<script type="text/javascript">function show(){alert("show run");}//与java相同,函数不调用是不会执行的。show();</script>


定义一个排序函数:

<script type="text/javascript">function sort( arr ){for(var x=0; x<arr.length;x++){for(var y=x+1; y<arr.length; y++){if(arr[x] > arr[y]){var temp = arr[x];arr[x] = arr[y];arr[y] = temp;}}}}var str = "";function printArray( arr ){for(var x=0; x<arr.length; x++){if(x != arr.length-1)str += arr[x] + "," ;elsestr += arr[x];}alert( str );}var arr = [5,1,2,7,4,9,3];sort(arr);printArray(arr);</script>


把全局变量赋给局部变量,局部变量的值改变了,全局变量没有变:

<script type="text/javascript">var x = 4;function show(x){x = 5;}show(x);alert(x);</script>


javascript中,函数没有重载形式:

<script type="text/javascript">function show(x,y){alert(x + "," + y);}show(3);</script>



函数内部有一个数组arguments专门用来接收参数的:

<script type="text/javascript">function show(){var str = "";for(var x=0; x<arguments.length; x++){if(x!=arguments.length-1)str += arguments[x] + "," ;elsestr += arguments[x];}alert("参数长度:" + arguments.length + "\n分别是:" + str);}show(3,4,5,6,7);</script>



定义函数的思路:

1.我要实现什么功能。

2.实现这个功能要用到哪些未知内容参与运算。用到哪些未知内容都把它定义在参数上。

3.函数是可以return的。


如果你在调用函数的时候少写一个括号,

在java中你就挂掉了,可是在javascript中会返回这个函数的函数体:

<script type="text/javascript">function show(){return 4;}var x = show;  //这里调用函数,少写一个括号。alert(x);</script>

函数本身在javascript中就是一个对象,而show就是这个对象的名字。show就指向了这个函数对象。

var x = show();   //这块你加上括号,意思是:x在接收show()函数运行后的结果。

var x = show;   //不加括号,意思是:x指向了show所指向的那个函数对象。


动态函数:

在javascript中有一个内置的对象,叫Function

<script type="text/javascript">var show = new Function("x","y","var sum = x+y; return sum;");var sum = show(3,5);alert(sum);</script>

这种定义函数的方法:可以将参数和函数体都可以作为变量向内传递。


匿名函数:

<script type="text/javascript">var show = function(){alert("show run");}show();</script>

匿名函数可以作为一个事件的处理方式存在。

<script type="text/javascript">window.onload = function(){alert("onload over!");}</script>

<script type="text/javascript">window.onload = method;function method(){alert("onload over!");}</script>


创建一个对象:

描述一个人:

无参构造函数:

<script type="text/javascript">function Person(){alert("Person init!");}var p = new Person();p.name = "zhangsan";p.age = 50;p.eat = function(){return "chifan";}alert(p.name + "," + p.age + "," + p.eat());</script>

有参构造函数:

<script type="text/javascript">function Person(name,age){this.name = name;this.age = age;}var p = new Person("xiaozhu",20);alert(p["name"] + " : " + p.age); //两种形式.和[""]调用。</script>

" . 和 [ ] " 两种调用方式的不同:

 [ ]调用方式 :那些属性可以做为字符串往里传递。其实p就像一个数组一样,属性全是数组里的元素。

到以后遍历对象的时候就能看出它的作用了。

Person 的 P 不一定要大写,只是增加阅读性而已。


我们可以将对象封装成一个js文件,方便以后复用:

person.js   :

function Person(name,age){this.name = name;this.age = age;}var p = new Person("xiaozhu",20);


test.html  :

<html><head></head><body><script type="text/javascript" src="person.js"></script><script type="text/javascript">alert(p["name"] + " : " + p.age);</script></body></html>

照样能运行:



test.html  : 

<html><head></head><body><script type="text/javascript" src="person.js"></script><script type="text/javascript">var p = new Person("wangwu",50);alert(p["name"] + " : " + p.age);</script></body></html>

也能运行:



还能做一些其他事情:

person.js  :

function Person(name,age){this.name = name;this.age = age;}var p = new Person("xiaozhu",20);p.getName = function(){return p.name;}p.getAge = function(){return p.age;}

test.html  :

<script type="text/javascript" src="person.js"></script><script type="text/javascript">alert(p.getName());</script>


作业:

将获取数组的最大值、最小值、排序的方法封装到一个js文件里,以便复用:

arraytool.js  :

function ArrayTool(){}var ArrayTool = new ArrayTool();ArrayTool.getMax = function(arr){var Max = arr[0];for(var x=1; x<arr.length; x++){if(arr[x] > Max){Max = arr[x];}}return Max;}ArrayTool.getMin = function(arr){var Min = arr[0];for(var x=1; x<arr.length; x++){if(arr[x] < Min){Min = arr[x];}}return Min;}ArrayTool.sort = function(arr){for(var x=0; x<arr.length-1; x++){for(var y=x+1; y<arr.length; y++){if(arr[x]>arr[y]){var temp = arr[x];arr[x] = arr[y];arr[y] = temp;}}}return arr;}ArrayTool.print = function(arr){var str = "";for(var x=0; x<arr.length; x++){if(x!=arr.length-1)str += arr[x] + ",";elsestr += arr[x];}alert(str);}

test.html  :

<html><head></head><body><script type="text/javascript" src="arraytool.js"></script><script type="text/javascript">var arr = [5,6,3,1,9,0];alert("Max="+ArrayTool.getMax(arr));alert("Min="+ArrayTool.getMin(arr));alert("sort:"+ArrayTool.sort(arr));</script></body></html>



0 0
原创粉丝点击