JavaScript基本语法

来源:互联网 发布:闪电网络 原理 编辑:程序博客网 时间:2024/05/14 19:36

  • 了解什么是脚本程序和JavaScript
  • JavaScript的基本语法
  • 运算符
  • 程序的控制流程
  • 函数
  • 对象
  • JavaScript的内部对象

【什么是脚本程序和JavaScript?】

什么是脚本程序?

html语言是一种标记语言,只能够定义内容的表现形式,不具有逻辑性,不能够与用户进行交互,例如接受用户通过文本框所输入的身份证号码,然后判断是否有数字以外的字母,如果有,则显示一个对话框提示用户重新输入。如果浏览器能够在解释html语言的基础上,还解释和运行嵌入在网页文件中的一种具有程序逻辑的语言,那么网页就能够像平时使用的windows程序一样与用户进行交互,网页的功能将会被大大的扩展,这种嵌套在html中的程序语言就被称之为脚本语言,这些程序就被称之为脚本程序。浏览器中要集成有用于解释脚本程序的模块,这就是脚本程序的解释器,也被称之为脚本引擎。脚本程序的代码需要放在html文档中的script标签对之间,当浏览器读取到script标记之后,就知道要把script标记之间的内容当作某种程序语言来进行解释执行,而不再把它们当作网页中的普通文本来看待。

使用<script>标签对嵌入脚本程序,script的language属性用于指定它里面的程序代码所用的脚本语言的类型,目前最常见的两种脚本语言是vbscript和javascript,

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

//alert语句的作用是在浏览器窗口弹出一个对话框,显示alert的参数列表中的字符串。

脚本程序在什么时候执行呢?整个html文档是从上到下顺序执行的。一般情况下当浏览器打开一个html文档的时候,会从头到尾逐句解释整个文档中的html标签和脚本代码块,如果脚本代码块当中有可以直接执行的语句,浏览器则会在读取到这样的语句的时候马上进行解释执行。

这种嵌套在html网页文档中的脚本语言,完全是在浏览器上解释和运行的,与www服务器没有任何关系。

JavaScript简介

前身叫Livescript,是一种基于对象(Object)和事件驱动(Event Driven)、并具有安全性能的脚本语言。javascript的编程与C++和Java非常相似,只是还提供了一些自己专有的类、对象和函数。javascript代码并不会被编译为二进制的代码文件,而是作为html文件的一部分由浏览器解释执行,所以维护和修改起来非常方便,可以直接打开html文件来编辑和修改javascript代码,然后通过浏览器就可以立即看到修改后的效果。学习javascript不需要掌握复杂的编辑工具,只要使用许多操作系统都自带的文本编辑器和浏览器就可以了。学习javascript的难度不大。

JavaScript与Java的区别

他们是两个公司开发的两个不同的产品,作用与用途大不一样,但两者语法上有很多相似之处,javascript并不是Java的子集。

Java特别适合于Internet应用程序的开发,javascript是Netscape公司开发的脚本语言,是基于对象的但不是面向对象的语言。

JScript是微软开发的脚本语言,与javascript非常相似,ECMAScript是欧洲计算机制造商协会将JavaScript标准化后的脚本语言。



【JavaScript的基本语法】

脚本代码的位置,多种形式的脚本代码:

(1)放置在<script></script>标签之间,这是最常见的形式。script标签的位置不固定,可以出现在head和body的任何地方,在一个html文件中可以使用多个script标签对来嵌入多段javascript代码,每段JavaScript代码之间可以相互访问,这与用一个script标签嵌入所有javascript代码的效果是一样的。

(2)放置在一个单独的文件中,这个文件以js为扩展名,这种文件被称为javascript脚本文件。使用src属性来指向javascript脚本文件的URL地址,在html文档中引入javascript脚本文件这与第一种方式的效果是一样的。

(3)将脚本程序代码作为属性值。例如:<a href="javascript:alert(new Date());">javascript</a>

对于<input type=button value=test onclick="alert(new Date())">  用来表示当用户单击按钮时,所要执行的脚本程序代码,onclick的属性值就是javascript代码。

说明一点:作为html标签的属性值的javascript代码中的最后一条语句结尾处的分号可以省略。


注释

在javascript标签对当中,会忽略html的注释符,注释方式与Java语法一致。

还可以这样注释:alert(a/*"a="+a*/);   //将显示a的值

变量

(1)申明变量要使用var关键字,例如:var name;

(2)若申明的变量没有被赋初值,这时候变量的值是undefined。

(3)对已赋值的变量赋予一个其他类型的数据。例如:var name="zhangsan";   name=123;此时name就自动变成整数类型了。

(4)在javascript中可以不事先申明变量就直接使用。

例如:x=1234; x=x+1;alert(x+"22");   //将显示1234122

对比:var x=1234;x=x+1;alert(x+"22");    //将显示123522


【运算符】


【程序的控制流程】


【函数】

function 函数名(参数列表){...... return 表达式;}

例如:function testParams(x,y){ var sum; sum=x+y; return sum;}


参数个数可变的函数(使用arguments对象访问传递过来的所有参数)

函数内部可以使用一个名为arguments对象,这是一个数组对象,包含了调用程序传递给这个函数的所有参数。


创建动态函数

类似C语言中指向函数的指针的方式,被称之为动态创建的函数。

语法格式:var varName = new Function(argument1,......,lastArgument);

说明:所有的参数都必须是字符串型的,最后的参数必须是这个动态函数的功能程序代码。

例子:<script language="javascript"> var square = new Function("x","y","Var sum;sum=x*x+y*y;return sum;"); alert(square(3,2));</script>

思考:动态函数有什么用,在什么情况下用动态函数?


javascript中的系统函数

encode URI方法:返回对一个URI字符串编码后的结果(URL是最常见的一种URI),URI比URL的表示的概念更大。

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

parseInt方法:将字符串按照指定的进制转换成一个整数。语法格式:parseInt(numString,radix),第二个参数是可选参数,取值范围为2~36,用于指定进制。如果没有指定第二个参数,则前缀为'0x'的字符串被视为十六进制,前缀为'0'的字符串被视为八进制,所有其他字符串都被视为十进制。例如:parseInt("123abc",10); //结果是123,不能被转换为数字的字符abc被忽略掉

parseFloat方法:将一个字符串转换成对应的小数。

isNaN方法:用于检测parseInt和parseFloat方法的返回值是否是NaN,如果是就返回true,否就返回false。当使用parseInt来转换字符串,当字符串的开始部分不是数字字符,那么这两个方法对这个字符串进行的转换将会失败,返回NaN。

escape方法:返回对一个字符串进行编码后的结果字符串。所有空格、标点、重音符号以及任何其他非ASCII字符都用%xx编码替换,其中xx等于表示该字符的Unicode编码的十六进制数,字符值大于255的字符以%uxxxx格式存储。可用于对文本的简单加密。

unescape方法:用于将一个用escape方法编码的结果字符串解码成原始字符串并返回。

eval方法:将其中的参数字符串作为一个javascript的表达式执行。使用eval方法可以在程序中动态地产生表达式,可以达到与动态函数类似的功能效果。


【对象】

构造函数的形式跟普通函数没有区别。

function Person(){}

var person1= new Person(传递给该对象的实际参数列表);

成员变量:

person1.age;     //若person1.age是第一次出现,javascript会自动认为age是person1的新增加的对象成员,可以为对象实例无限制地添加新的成员

person1.age=18;等同于person1[“age”]=18; 例如:function get(attr){ alert(person1[attr]);  }  get("age");

成员函数:

function sayFunc(){}

person1.say=sayFunc;  //定义成员函数

person1.say();   //成员函数被调用时执行sayFunc。


this关键字

为一个对象实例新增加的属性和方法,不会增加到同一个对象所产生的其他对象实例上。

所有的实例对象在创建后都会自动调用构造函数,在构造函数中增加属性和方法会被增加到每个对象实例上。

对象实例是用new关键字创建的,在构造方法中不要有返回结果的return语句。

调用对象的成员方法时,需要使用“对象实例,成员方法”的形式,很显然,用作成员方法的函数被调用时,一定伴随着某个对象实例。this关键字代表某个成员方法执行时,引用该方法的当前对象实例,所以this关键字一般只在用作对象成员方法的函数中出现。


【javascript的内部对象】

每个内部对象都有一些方法和属性,可以实现非常强大的功能。

动态对象:使用new创建一个对象实例,然后使用“对象实例名.成员"的格式来访问其属性和方法。

静态对象:直接使用”对象名.成员"的格式来访问属性和方法。

最常用的内部对象:

Object对象:提供了一种创建自定义对象的简单方式,不需要程序员再定义构造函数。例如var person = new Object(); person.name;

String对象:length属性(字符串中字符个数),anchor、big、bold、fontcolor、link等方法(可用于为字符串添加其在web页面中的显示效果的标签),charAt方法,charCodeAt方法,indexOf方法,lastIndexOf方法,match、search方法(用于正则表达式),replace、split方法,slice方法(返回在一个字符串中的两个位置之间的子字符串),substr、substring方法,toLowerCase、toUpperCase方法。








0 0