你的位置:首页 > Java教程

[Java教程]21、javascript 基础


Javascript

Javascript 是前台脚本语言。

Javascript 是可插入html页面的编程代码。

Javascript 是大小写敏感的,大写字母与小写字母不同。

使用“;”分号来分割每一句js。

<scirpt>标签

javascript 代码必须放在<script></script>标记中

Javascript 输出

document.write("向html输出一句话");document.getElementById('id').innerHTML="设置的值"; //找到html中ID属性为id的元素并设置他的文本。

Javascript 注释

//单行注释

/**/ 多行注释

Javascript 变量

在javascript中,使用var声明变量。如:var a,b,c;

使用 = 号 赋值。 如:a = 1; b = 2 ; c = "abc";

未赋值的变量值为underfined

Javascript 数据类型

基本类型:数字类型、布尔类型、字符串类型

引用类型:对象类型、函数类型

空类型:null、underfined

运算符:typeof

  语法:返回类型是字符串,用于查看该变量属于什么类型。 string typeof(变量);

Javascript是若类型语言(不严格检查类型内容),使用var声明变量。

<script type="text/javascript">//基本类型var num = 1; //numberalert(typeof (num));var flag = true; //booleanalert(typeof (flag));var code = "123"; //stringalert(typeof (code));//引用类型var nums = new Array( 1,2,3,4,5); //数组 objectalert(typeof (nums));var date = new Date(); //日期 objectalert(typeof (date));var func = function(){}; //函数 functionalert(typeof (func));//空类型var color = null; //空 返回object 引用类型属于object 特例alert(typeof (color));var underfined; //underinfed 未定义alert(typeof (underfined));</script>

Javascript 数组

var arry1 = new Array(); //方式1 arry1[0] = "bai"; arry1[1] = "da"; arry1[2] = "wei";var arry2 = new Array("bai","da","wei"); //方式2var arry3 = ["bai","da","wei"]; //方式3alert(arry1.length);alert(arry2.length);alert(arry3.length);

Javascript 运算符

算数运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)、++(递加)、--(递减)(字符串中+用于连接)。

赋值运算符:=(复制)、+=(加等于)、-=(减等于)、*=(乘等于)、/=(除等于)、%=(余等于)。

比较运算符:==(等于)、===(绝对等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。

逻辑运算符:&&(与)、||(或)、!(非)。

Javascript 逻辑控制

IF--ELSE

用来区间性判断,类似c#。

var num = 10;if(num > 0 && num < 5){  alert(typeof (num));}else if(num > 5 && num < 10){  alert("else if");}else{  alert("else");}

Switch--Case

用于等值比较,类似c#。

var num = 10;switch(num){  case 1 :    alert("1");  break;  case 2 :    alert("2");  break;  default:    alert("3");  break;}

Javascript 循环

while循环

先执行再判断

var num = 1;while(num<=10){  document.write(num);  num++;}

do--while循环

先判断再执行

var num = 1;do{  document.write(num);  num++;}while(num<=10)

for循环

for(var num = 1; num <= 10; num++){  document.write(num);}

for--in循环

类似foreach,但是不同。

//遍历数组var nums = new Array(1,2,3,4,89,23); //数组for(var item in nums){  document.write(item);}//遍历键值对 jsonvar kv = {  "key1":"value1",  "key2":"value2"}for(var item in kv){  document.write(kv[item]);//输出的是值 item是键}

Break和Continue

break 立刻退出循环

Continue 结束本次继续下次循环

函数

javascript中使用Function定义函数。

语法:

  function  函数名(参数列表){

    //如果有返回值直接return

  }

function getMax(num1,num2){  return num1 > num2 ? num1 : num2; //三元表达式}var num1 = 10;var num2 = 20;var result = getMax(num1,num2);document.write(result);

Lambada函数(匿名函数)

var arry = [23,4,48,23,54,34,23,54]; var getMax = function (nums)  //注意这里不一样{  var result = 0;  for(var i = 0;i < nums.length ; i++)  {    if(nums[i] > result)      result = nums[i];  }  return result;}document.write(getMax(arry));

arguments 参数

在函数内部有一个arguments参数,用来表示函数的参数。

//如果一个方法不写参数,默认会有一个argumentsvar func = function() //这里没有写参数{  document.write(arguments.length); //这里输出内置参数长度}func(1,2,3); //给这个方法三个参数 输出结果为3

可以看到即使不指定参数,默认也会有一个内置函数来接收他们。可以循环输出他们,如果在这个情况下写参数呢?

var func = function(num) //这里加一个参数{  document.write(num); //输出这个参数  document.write(arguments[0]); //输出第一个内置函数的参数  document.write(arguments.length); //这里输出内置参数长度}func(1,2,3); //结果 1 , 1 , 3 

可以看出,arguments对象中第一个参数跟写上的参数是相等的。

因为javascript是没有方法的重载的,利用argments可以实现方法重载。

//可以这样模拟方法重载//根据参数的个数不同来调用不同的方法var foo = function(){  switch(arguments.length)  {    case 0 :       func1();    break;        case 1 :       func2();    break;        case 2 :       func3();    break;  }}

Function对象

动态函数,将字符串变成函数。

最后一个参数是函数的方法体,之前的参数都是函数的参数。

var func = new Function("num1","alert(num1)"); //将指定字符串转换为javascript函数func(10);//等同于var func = new Function("num1","alert(num1)")(10); //直接执行