javascript 语法

基本语法

一、脚本代码的位置,可以在三个地方编写JavaScript脚本代码:

1、在网页文件的<script></script>标签对中直接编写脚本代码程序;

使用最多的情况(一般放在head里面)。

<script>标签的位置并不是固定的,可以出现在<head>或者<body>中的任何地方;而且在一个文档中可以有多个<script>标签来嵌入多段JavaScript代码,每段代码可以互相访问,同将所有JS代码放在一对<script>标签中的效果是一样的。

旧版本的浏览器并不能识别<script>标签,会直接向用户显式其中的内容,而不是当做脚本语言去执行。为了解决这个问题,可以吧<script></script>标签对中的内容用HTML起始和结束注释标记<!--和-->包括起来。

支持<script>标签的浏览器会忽略嵌入在<script></script>标签对中的注释符,也就是它会继续执行注释符之间的脚本程序。

2、将脚本代码放置在一个单独的文件中,在网页文件中引用这个脚本程序文件(.js文件);

Js文件写好之后,只需要在HTML网页中引入JavaScript脚本文件的URL地址即可(也可以通过拖拽的方式)。

3、将脚本程序代码作为某个元素的事件属性值或超链接的href属性值

超链接<a>的href属性除了可以使用http和mailto等协议之外,还可以使用Javascript协议。如:

  <a href=”javascript:alert(new Date())”>javascript</a>

单击这个超链接,浏览器将会执行JavaScript:后面的脚本程序代码。

标示符

  在JS中声明一个变量用var,因为JS是一种弱类型的语言,在运行的时候才能够确定类型;字符串用双引号或者单引号都可以,但是推荐在HTML中用双引号,JS中用单引号。

JS中,定义一个变量但没有为之赋值,那么变量的值就为undefined,在这种情况下,可以使用两种方式判断变量值是否为undefined:

var x;

if(!x)

{

x=’new’;

}或

if(typeof(x)==’undefined’)

{

x=’new’;

}

  值得一提的是JS中变量的作用域:在JS中不存在块级作用域,所以在if语句中声明的变量作用域在整个方法中都可以使用,包括for循环等。Var表示局部变量,不写var表示全局变量,如果在方法外定义变量像这样:var x;那么等同于全局变量,因为它在整个JS代码中都是可以被访问的。因此,我们在声明变量的时候尽量加上var。

  另外:switch-case语句中判断表达式结果用的是完全等于(===)。

函数

  

定义函数的格式:

function 函数名(参数列表)

{

程序代码

return 表达式;

}

参数列表:就是程序在调用某个函数,执行其中的程序代码时,有时需要给函数传递一些参数,这时就有了参数列表(即使没有参数,方法名后面的括号也不能省)。

返回值:如果主程序要求函数返回一个结果,就必须使return语句后面跟上这个要返回的结果。如果没有返回值或者不写return语句,这个函数就返回一个为undefined的值。

  

匿名函数

又称作动态函数,后面直接加分号。

var varName=new function( ){ };

在之后的JS程序中,匿名函数用的非常之多。

系统函数

可以直接调用这些函数来完成某些功能。

1、encodeURI

方法返回对一个URI字符串编码后的结果。URL是最常用的一种URI,URI的概念比URL表示的概念更大,它不仅限于描述Internet资源的地址,还包括数字对象标识符DOI和国际标准书号ISBN等标识名称。

在一般情况下,可以简单地认为URL等同于URI。

例如:<script type=”text/javacsript”>

var temp=encodeURI(’http://www.baidu.com/百度知道’);

alert(temp);

</script>

结果如下:

2、decodeURI

DecodeURI方法将一个已编码的URI字符串解码成最初始的字符串并返回。

3、parseInt

parseInt方法将字符串转换为整数,当转换过程中遇到非数字则终止转换,只保留转换成功的数字;如果遇到的第一个就是非数字,则返回NaN(Not a Number)。

parseInt有两个参数:(numString,[radix]),第一个参数是要进行转换的字符串;第二个参数是可选的。如果没有指定第二个参数,则前缀为‘0x’的字符串被视为十六进制,前缀为‘0’的字符串被视为十进制,默认为十进制。

类似的数据转换函数还有:parseFloat。

4、isNaN

  isNaN方法用于检测parseInt和parseFloat方法的返回值是否为NaN,如果是则返回true,不是则返回false。

5、string

把任意类型转换为字符串时,如果使用string()可以把null值转换为‘null’,但是如果使用ToString()方法就会报错。

6、eval

  eval(….)可以直接执行括号中的代码,就是把字符串编译成JS代码来执行。(不常用)

JS中的系统函数有很多,没有必要全部记住,在需要的时候我一般通过查看W3CSchool中的JavaScript参考手册来找到需要的内容。

对象

  调用对象的成员方法时,需要使用“对象实例.成员方法”的形式。This关键字一般只在用作对象成员方法的函数中出现,它代表某个成员方法执行时,引用该方法的当前对象实例。在对象的构造方法中使用“this.成员名”的形式,可以为该对象的每个对象实例都增加新的成员。

  随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。