WEB基础__JavaScript 概述及语法

JavaScript 概述

JavaScript 是基于对旬和事件的脚本语言。

    特点:

    1,安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互。

    2,跨平台性。(只要是可以解释JS的浏览器都可以执行,和平台无关)

 

JavaScript 与 Java 不同

1JS Netscape 公司的产品,Java Sun 公司的产品,现在是Orcale公司。

2JS 是基于对象,Java 是面向对象。

3JS 只需由浏览器解释就可以执行,Java 需要先由jvm编译成字节码文件,再执行。

4JS 是弱类型,Java 是强类型。

5JS 是非严谨的,java 是严谨的。

6javascript运行在客户端。

 

JavaScript 与 Html 的结合方式

想要将其它代码融入到Html中,就得使用JavaScript 。都是以标签的形式融入。

1JS 代码存放在标签 < script >....< / script >中。

常放于head标签内 <head>   <script> ........</script>   </head>

因为让其先编译执行。

2,使用script 标签的src 属性引入一个js 文件(这样方便后期维护,扩展)。

   例:< script  src=test.js  type=text/javascript> < /script >

   注:规范中script 标签中必须加入type属性。

例:

< script  src=test.js  type=text/javascript> < /script >

< script  type=text/javascript

JS代码

。。。

< /script >

 

JavaScript 语法

每一种语言都有自己的语法规则,JS语法与Java 很像,JS 中也一样有变量,语句,函数,数组等觉语言组成元素。

 

1, 变量

通过关键字 var 来定义(变量,方法,数组都是通过这个来定义的),弱类型是不用指定具体的数据类型。即该变量可以赋予不同类型的常量。

例: var x = 3;    x = hello;  // 注:这里x=3 var 也可不写,因为JS是非严谨的。

注:JS中特殊的常量值:undefined, 当变量没有初始化就被使用,该变量的值就是undefined(未定义)

 

注:如果想获取具体值的类型,可以通过typeof来完成

如:alert(typeod(abc));  //string

alert(typeod(3));   /string

alert(typeod(true));  //boolean

alert(typeod(77));    //number

alert(typeod(3.5));   //number

 

全局变量:在script脚本片段中定义的变量。包括for循环中

局部变量:在函数内定义的变量。

如:function demo()

{

var x = 7;  //局部变量

}

 

2,语句(与Java语句格式相同)

一:判断结构:if语句

注:var x = 3;

if(x==4) //可以进行比较运算。

if(x=4) //可以进行赋值运算,而且可以两样进行判断,不会报错。

因为在JS0就是false, 0就是true (通常用1表示)

 非null true, 空为false

所以if(x=4)结果是true

所以alert(true+1) 是可以进行运算的。结果为 

如果想进行比较,可以通过这个方法来避免这个问题:if(4==x){}

 

二:选择结构:switch

三:循环结构:while语句,do....while语句,for语句

 

注:不同的是,没有了具体数据类型的限制,使用是要注意。

四:JS特有语句

with(对象) {} 可以确定对象所使用的范围,在范围内,可以不写 “对象。” 简化了对象的操作。

for(变量  in  对象可以对对象的属性及行为进行遍历。

 

3,函数

一:一般函数

格式:

function 函数名(形式参数。。。)

{

执行语句;

return 返回值;//这里可以用,也可以不用。这点跟java不一样

}

 

函数是多条执行语句的封装体,只有被调用才会被运行。通常代码复用可以进行封装成函数。

注意:在Javascript中调用有参数的函数,但没有为其传值,或调用无参数的函数,又传了值,该函数也一样运行。也就是说只要写了函数名后面跟有一对小括号,该函数就会运行。

 

那么传入的参数呢?

其实,在函数中有一个参数数组对象(arguments),该对象将传递的参数都封装在一个数组中。

例:function demo()

{

alert(arguments.length);

}

demo(hello,123,true);//调用函数,弹出的结果是 ,如果相得到所有的参数值,可以通过for       循环遍历该数组。

 

    注意:arguments 可以用this 来代替

 例:for(var x = 0; x<arguments.length; x++)

 {

 alert(arguments[x]);

 }

 

 为了增强阅读性,最好按照规范,按照定义好的形式参数传递实际参数。

 

 注意:函数在调用时的其它写法:

   var show = demo();  //show变量接收demo函数的返回值。

 var show = demo;  //这种写法是可以的,意为showdemo代表同一函数,那么该函数也可以 通过show()的方式运行。因为demo本身就是一个对象的引用,这样只是     把引用地址给了show。相当于这个函数有两个名称。

 

二:动态函数

 通过JS的内置对象function实现。

 例:var demo = new function( x,y ; alert(x+y); );

    demo(4,6);

   如同:

function demo(x,y)

{

alert(x+y);

}

demo(4,6);

 不同的是,动态函数的参数以及函数体都可以通过参数进行传递,可以动态指定。

 

三:匿名函数

格式:function(){.....}

例:

 var demo = function(){....}

 demo();

通过在定义事件属性的行为时较为常用。

例:

function test()

{

alert(load ok);

}

window.onload = test;

 

写成匿名函数的形式:

window.onload  = function()

{

alert(load ok);

}

 匿名函数就是一种简写格式。

 

4JavaScript代码执行顺序

JavaScript执行引擎并非一行一行的分析和执行程序,而是一段一段的分析执行。而且在分析执行同一段代码中,定义式的函数语句会被提取出来优先执行。函数定义完后,才会按顺序执行其它代码。

格式:

定义式:function text1(){}

变量式:var text2 = function(){}

 

注意:

如果代码块中有同名函数,则执行的时候是执行最后一个。因为后面的函数覆盖了前面的同名函数。

例:

function hello(){ alert(hello,不是我); }

hello();

function hello(){ alert(hello,是我); }

hello();

这两次调用hello()方法所得的结果都是 hello,是我  

 

5,数组

方便操作多元素的容器,可以对其中的元素进行编号。

可以实现堆栈和队列的功能。先进先出,先进后出。等

特点:

1,同一个数组中可以存在任意类型元素

2,数组长度是可变的,相对与java中的集合。

格式:

var arr = new Array();

arr[0] = hello;

arr[1] = 124;

var arr = [hello,123,true,abc];

 

二维数组定义:

var arr = [ [342] [ 52] ];

通过遍历即可对数组进行基本操作,java一样,同时也使用了指针思想。

for(var x = 0; x<arr.length; x++)

{

alert(arr[x]);

}

 

5,对象

Javascript中已定义好的一些对象:

String,Math,Date,Array,Function等,这些对象都有一个属性叫做 prototype 原型。

 

如何给这些已有对象加入新的功能?

 

prototype :可以获取指定的对象引用。可以通过该引用给已有的对象赋予一些新的功能。

     那么在使用时,可以直接调用定义好的新功能。

例:

给数组Array中加入取最大值功能。

function getMax()

{

var max = 0;

for(var x=1; x<this.length; x++)

{

if(this[x] > this[max])

max = x;

}

return this[max];

}

 

var arr = [3,4,22,5];

arr.sort(); //直接调用Array对象的sort 方法对数组进行排序。

 

那么可不可以像调用sort 方法一样调用getMax方法呢?

需要将getMax方法添加到Array对象中。使用prototype 

 

Array.prototype.getMax;   //加入Array对象中

 

 var x = arr.getMax();

alert(max=+x);

 

//color加入新功能,自己定义颜色

var str = abc;

function mycolor(color)

{

return <font  color=  +color+  > + this + < /font >;

}

String.prototype.color = mycolor;  //加入color对象中

str.color(red);

 

例二:

给字符串String中加入一个新的功能,去掉字符串两端空格。

function trim()

{

var start,end;

start = 0;

end = this.length - 1;

while(start<=end  &&  this.charAt(start)==  )

start ++;

while(start<=end  && this.charAt(end)==   )

end --;

return this.subString(start , end+1);

}

String.prototype.trim = trim;

var s =     abc    ;

s = s.trim();

 

常见的全局方法。

parseInt(numstr, [rakix] ) //将数字格式的字符串转成整数,如果指定了基数那么numstr就会按照 指定基数进行转换。

例:

var num = parseInt(110 , 2) ;  //表示110这个字符串会按照二进制进行转换。

 

var x = 6;

alert(x.toString(2)) ;  //以二进制返回

 

如何自定义对象

JS除了已经提供的内置对象外,也可以自定义对象。

JS 通过对象形式将数据进行封装,首先对对象进行描述,通过函数来完成。

例:

function Person() //很象java中的构造函数

{  }

 

var p = new Person();

p.name = shangan;

p.age = 20;

//定义成员函数

p.run = function()

{

alert(runtext);

}

或:

function Person(name,age)

{

this.name = name;

this.age = age;

}

var p = new Person(zhansan,20);

对于第一种方法呢,想用什么变量,方法啊什么的在须要什么在定义时使用。

 

JS用于操作对象的语句

一:with语句

格式:

with(对象)

{ }

应用:当调用一个对象中多个成员时,为了简化调用,避免“对象。”这种格式的重复书写。

var p = new Person(zhangsan,20);

alert(p.name+p.age);

可以写成:

with(p)

{

alert(name+age);

}

 

二:for (  in  )

格式:

for (变量  in  对象名)

{

 

}

例:

var arr = {3,2,4,1};

for (x  in  arr)

{

alert ( arr[x] );

}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值