Javascript 网页开发—体验式学习教程(2) Basic of JavaScript

Javascript

<script language="javascript">
alert(new Date());
</script>

 

Javascript 基本语法

1.      script 的位置

<script>

</script>

2.      放到一个单独的文件里

*.js

<script: src=”showDate.js” language=”javascript”>

</script>

3.      将脚本程序代码作为属性值

<a href="javascript:alert(new Date());">show Date</a>

 

 

Javascript 不同于Java/c的语法:

 

数据类型:

整型,实型(float,double ?),布尔值,字符串

变量声明:( 弱类型语言)

var name=”moon”;

undefined 未赋值,未知状态

 

函数:

function pingfang(x){

return x*x;

}

全局变量和局部变量问题/传值&传引用:

 

<script lanaguage="javascript">

var msg="全局变量";

function show()

{

msg="局部变量";

}

show();

alert(msg);

 

var i=10;

alert("i Before:"+i);

function change(i)

{

i+=10;

alert("i change"+i)

return i;

}

var j=change(i);

alert("i after"+i+"/tj"+j);

 

</script>

 

<html>

<head>third page</head>

<body>

<p align="center"><font color="#8000ff"> This is the third page</font></p>

</body>

</html>

运行一下可以看到,是传值,要注意和局部变量,全局变量的区别.

如果是变量名都一样,局部变量会改变全局变量的值(Java 里也是这样的情况)!注意,和传值到一个函数(方法)里是完全不同的概念,传递函数(方法)里值是不变的.

package moonsoft.j2se.testBasic;

 

public class testQUJB

{

  public testQUJB()

  {

  }

  public static  void main(String args[])

  {

    int x=10;

    System.out.println(x);

    change(x);

    System.out.println(x);

    int i=10;

    System.out.println("quanju"+i);

    for( int j=0; j<=2; j++)

    {

       i=20;

       int k=15;

      System.out.print(i+"/t"+k);   

    }

    System.out.println("after"+i);

  }

  public static void change(int x)

  {

    x+=10;

   System.out.println(x);

  }

}

 

Javascript 的可变参数:

<script lanaguage="javascript">

function testCanShu(){

var params="";

for(var i=0; i<arguments.length; i++)

params=params+" "+arguments[i];

alert(params);

 

}

testCanShu("abc", "123");

testCanShu(123, 456, 789, "abc");

 

</script>

 

<html>

<head>third page</head>

<body>

<p align="center"><font color="#8000ff"> This is the third page</font></p>

</body>

</html>

 

arguments 为对象,不可以忽略大小写,写成argument 更不行!

 

创建动态函数:

<script language="javascript">

var square=new Function("x", "y", "var sum; sum=x*x+y*y; return sum; ");

alert(square(3,2));

</script>

Javascript 的系统函数:

EncodeUrI

DecodeUri

ParseInt

ParseFloat

IsNaN

Escape

Unescape

Eval

 

对象

 

Javascript 是基于对象的语言,而不是面向对象的语言,这句话该如何理解?

创建对象的实例:

Var objInstance =new objName(参数列表);

 

<script language="javascript">

function Person()

{}

var person1=new Person();

person1.age=26;

person1.name="Aaron";

alert(person1.age+" "+person1.name);

function say()

{

alert(person1.name+""+person1.age);

}

person1.say=say;//比较乱,一个方法可以带括号,可以带一个参数

//,n个参数,编译器都承认!!!

person1.say();

 

</script>

 

this 关键字和重载的研究

 

<script language="javascript">

function Person(name, age)

{

this.age=age;

this.name=name;

}

function Person(name)

{

 

this.name=name;

}

function say()

{

alert(this.name+", "+this.age);

}

var person1=new Person("Aaron", 26);

var person2=new Person("Kevin");

person1.say=say;

person2.say=say;

person1.say();

person2.say();

 

</script>

关键字this 只用在对象方法中出现, 它代表某个成员方法执行时,引用该方法当前对象的实例, java

 

关于函数(方法)的重载,没有意义,javascript里面.

可变参数的函数用arguments 来实现,象上面,它只选择了最少的那个函数来实现.

 

传值还是传引用?

 

<script language="javascript">

function change(i)

{i+=5;

alert(i);//10

}

var i=5;

alert(i); //5

change(i);

alert(i);//5

 

</script>

 

这里演示的是传值问题:传值的时候建立了一份拷贝,然后退出该函数,拷贝消失,值不变.所以,这里说,javascipt 一样是传值,java, C++/C/dephi ,&value 可以传引用.这里永远是传值!

 

下面通过修改对象的实例的状态来改变其值:

<script language="javascript">

function Add(number)  //构造函数

{this.number=number;

alert(this.number);

}

function say()        //一个方法

{alert(this.number);}

 

var j=new Add(5);//5

j.say=say;

j.say();//5

 

function change()// 改变对象的状态

{

this.number+=5;

}

 

j.change=change;

j.change();//10

j.say();//10

 

</script>

 

这里,j is a instance of ADD fuction, so, We can say it  is指向了一块内存区域的头指针,这块区域的内容是5,还有一个alert();然后我们又增加了一个方法: j.say=say;

接着,我们又增加了一个方法, j.change=change;

这里建立了一份拷贝,也指向这块内存区域,接着我们修改了这块区域,当然,退出后也会改变.

 

 

 

javascipt 中有两种对象, 一种是需要new ,一种是不需要new (静态对象)

 

 

 

 

 

Javascript 的内部对象

 

Object 对象

<script language="javascript">

function getAttribute(attr)

{

alert(person[attr]);

}

var person=new Object();

person.name="Aaron";

person.age=26;

getAttribute("name");//注意这里必须加双引号

getAttribute("age");//注意这里必须加双引号

</script>

 

是其它对象的基础,可以随意添加属性(,没有继承的概念......)

 

String 对象

1)  属性:

Var myFirstString=new String("moonsoft.blogchina.com");//StringmyFristString="......"?不可以

 

var length=myFirstString.length;//22

alert(length);

2)  方法

java部分, match, link methods, 特殊

 

Method 对象

 

静态对象

Date 对象

<script language="javascript">

var current_time=new Date();

var strDate=current_time.getYear()+"";

strDate+=current_time.getMonth()+1+"";

strDate+=current_time.getDate()+"";

alert(current_time);

alert(strDate);

</script>

 

strDate+=current_time.getMonth()+1+"";

这里和java.util.*; 里的一样,1月为0,12月为11,所以要加1.

 

toString 

转化成某种格式的字符串

toString(16); 转化成16进制

 

专门用于对象的语句

1.with(object instance) {}

如把上面弹出时间的语句改成:

 

<script language="javascript">

var current_time=new Date();

with(current_time){   重复循环对某个对象进行操作

var strDate=getYear()+"";

strDate+=getMonth()+1+"";

strDate+=getDate()+"";}

alert(current_time);

alert(strDate);

</script>

2.for( 变量 in 对象){} 对某个对象的所有属性进行循环操作

 

 

数组

普通数组:

<script language="javascript">

var array1=[1, 2, 3, 4, 5.56];//notice here : strange

 

for( var i=0 ; i<=array1.length-1; i++)

{

alert(array1[i]);

}

 

</script>

数组的数组

<script language="javascript">

var Array2=[["a", "b", "c"], ["A", "B", "C"], 1, 2 ];

 

for(var i=0; i<=Array2.length-1; i++)

{

alert(Array2[i]);

}

 

</script>

 

突然想到,javascript 根本不在乎数组的类型是什么,字符串和数字都可以放在一起,有意思.

 

对象数组

<script language="javascript">

function objectArray(size)

{

this.length=size;

for(var i=0; i<size; i++)

{

this[i]="";

}

}

var myObjects=new objectArray(3);

myObjects[0]=3;

myObjects[1]="love";

myObjects[2]="3.14159265453";

 

var x, str="";

for(x in myObjects)

{

str+=x+":"+myObjects[x]+"/n";

 

}

alert(str);

 

</script>

有一点难.

 

Array 对象

方便对数组进行排序,插入,删除合并等操作.

var arr1=new Array();

var arr2=new Array(4);

var arr3=new Array(3.5,4, "arry", 789.5);

 arr.sort();

 

以上是javascript 的基础知识.接下来要攻DOM编程.利用javascript 来和用户进行交互.这也是我们最愿意学的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值