JavaScript基础
什么是JavaScript
JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。
JavaScript的出现弥补了HTML语言的不足,它是Java与HTML折中的选择,具有以下几个基本特点。
1、脚本编写
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。它作为一种解释性语言,不需要进行编译,而是在程序运行过程中逐行地被解释。
2、基于对象
JavaScript是一种基于对象的语言,这意味着它能运用自己已经创建的对象。因此,许多功能可能来自于JavaScript运行环境(即浏览器本身)中对象的方法与JavaScript的对象相互作用。
3、简单性
JavaScript的简单性首先主要体现在它基于Java的基本语句和控制流,是一种简单而紧凑的语言,对于学习Java是一种非常好的过度;其次,它的变量类型是采用“弱类型”,并未使用严格的数据类型。
4、安全性
JavaScript是一种安全性语言,它不允许访问本地的硬盘,而且不能将数据存入到服务器上;不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。
5、动态性
JavaScript是动态的,它可以直接对用户或客户输入做出响应而无需经过Web服务程序。它对用户的响应是采用以事件驱动的方式进行的。所谓事件驱动,就是指在页面中执行某种操作所产生的动作,比如按下鼠标、移动窗口或选择菜单等都可以视为事件,当事件发生后就会引起相应的事件响应。
6、跨平台性
JavaScript仅依赖于浏览器本身,与操作系统无关,只要是能运行浏览器的计算机,并支持JavaScript的浏览器就可以正确执行。从而实现“编写一下,走遍天下” 的梦想。
Java和Javascript的区别
1、基于对象和面向对象
Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。
JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object Based)和事件驱动(Event Driver)的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。
2、解释和编译
两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。
JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行。
3、强变量和弱变量
两种语言所采取的变量是不一样的。
Java采用强类型变量检查,即所有变量在编译之前必须作声明。
JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检查其数据类型,
4、代码格式不一样
Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。
JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本文件一样方便。
5、嵌入方式不一样
在HTML文档中,两种编程语言的标识不同,JavaScript使用<Script>...</Script>来标识,而Java使用<applet>...</applet>来标识,或采用java脚本语言。
6、静态联编和动态联编
Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。
JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就无法实现对象引用的检查。
写JavaScript程序时
1、JavaScript直接嵌入HTML文件中写在head或body标记对之间,要加标记如下:
<script>
document.write("<font color=blue>Hello World!</font>");
</script>
2、JavaScript程序存放在单独的.js文件中,再在HTML文件中链接
<head>
<script src="xxx.js"></script>
</head>
<body>
<form>
<input type=button onclick=show()>
</form>
</body>
在.js文件中直接书写javascript代码即可。
function show(){
document.write("hello world!");
}
基本数据类型:
在JavaScript中有四种基本的数据类型:
数值型(整数和实数)
字符串型(用""号或''号括起来的字符或数值)
布尔型(使用true或false表示)
空值(null)
变量:
在程序执行过程中值可变的量,是系统内存中的一个命名的存储单元。
变量的命名:
变量名以字母开头,中间可以出现数字,下划线。变量名不能有空格、+或其他符号,不能使用JavaScript的关键字作为变量。如:var、int、double、delete
变量名第一个单词全部小写,第二个单词开始每个单词的首字母大写,其余字母小写。
声明(定义)变量:
var x, myString;
var y=100, st="hello";
cost=23.6;
变量的作用域
在JavaScript中有全局变量和局部变量之分。全局变量时定义在所有函数体之外,其作用范围是所有函数;而局部变量时定义在函数体之内,只对该函数是可见的。
<script language="javascript">
var quanju=100;
function get(){
var i=10;
if(true){
var j=1;
} }
</script>
常量 :
在程序执行过程中其值不可改变的量。
1、整型常量
如:123 ,512
2、实型常量
实型常量是由整数部分加小数部分表示,如3.14,12.43等,也可以使用科学或标准方法表示,
如5E7,4e5等。
3、布尔值
布尔常量只有两种取值true 或false。主要用来说明或代表一种状态或标志,用以控制操作流
程
4、字符型常量
字符型常量是指使用单引号(')括起来的字符或双引号(")括起来的字符串。例如,字符'a',
字符串 "hello"。
JavaScript也支持以反斜杠(\)开头的不可显示的特殊字符,通常称为控制字符。例如换行符
('\r')、制表符('\t')等
5、空值
JavaScript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,就会返回一个
null值。
运算符:
运算符是完成某种操作的符号。
算术运算符:+, -, *, /, %, ++, --
比较运算符:= =, >, >=, <, <=, !=
逻辑运算符:&&, ||, !
赋值运算符:=, +=, -=, *=, /=,
表达式
x=100;
str="你好";
t=null;
表达式通常是由变量、常量和函数通过运算符构成的有意义的算式。
如:a, a*2/3, (x+y)*10+(z-3)*20, x==y
控制结构 :
1、if 语句
if (表达式){
语句块;
}
x=80;
if (x>=60){
document.write( "恭喜你,及格了!");
}
if (表达式){
语句块1 ;
}else{
语句块2 ;
}
if (x>=0){
y=x;
}else{
y=-x;
}
2、switch语句
switch(表达式) {
case 值1:语句1; break;
case 值2:语句2; break;
case 值3:语句3; break;
default: 语句4;
}
<script language="javascript">
function getWeek(week){
switch(week){
case 0:
st="星期日";
break;
case 1:
st="星期一";
break;
case 2:
st="星期二";
break;
case 3:
st="星期三";
break;
case 4:
st="星期四";
break;
case 5:
st="星期五";
break;
case 6:
st="星期六";
break;
default:
st="错误";
}
return st;
}
</script>
3、for 语句
for (初值表达式; 条件表达式; 更新语句) {
//循环体语句
}
4、While语句
while(条件表达式) {
//循环体语句
}
break语句:结束当前的循环或switch语句。
continue语句:用于for或while语句中,结束本次循环,继续下一次循环。
函数 :
函数是一个设定名字的一系列JavaScript语句的有效组合。函数可以带参数,也可以不带,可以有返回值,也可以没有
1、函数的定义
function 函数名([参数列表]) {
语句块;
[return 表达式;]
}
<script language="javascript">
//例:返回两个参数中较大的。
function max(a,b){
var x;
if (a>b)
x=a;
else
x=b;
return x;
}
</script>
2、调用函数
函数被调用时函数内的代码才真正被执行。调用函数的方法就是使用函数的名称并赋给全部参数相应的值。
<script language="javascript">
max(20,30);
</script>
或
<input type="button" onClick="max(23,45);">
在JavaScript中调用函数时,可以向函数传递比在函数定义时参数数目要少的参数。在这种情况下,只要不是试图去读那些没有传递过来的参数就行。用typeof运算符可以得到参数的类型。对于未传递的参数,用typeof运算符得到的结果是“undefined”。示例如下:
<script language="javascript">
function get(a,b){
document.write("参数a的数据类型是:"+typeof(a)+"<br>");
document.write("参数b的数据类型是:"+typeof(b));
}
get(32.4);
</script>
另外,JavaScript也可以向函数传递比在函数定义时参数数目要多的参数,为了读取这样的参数,可以使用arguments数组。传递给函数的第一个参数是arguments数组的第一个元素,我们可以用“函数名称.arguments[0]”来进行引用。示例如下:
<script language="javascript">
function getSum(){
var sum=0;
var number=getSum.arguments.length;//使用函数的参数数组
for(var i=0;i<number;i++){
sum+=getSum.arguments[i];
}
return sum;
}
document.write("23+54+65="+getSum(23,54,65));
</script>
JavaScript系统函数:
JavaScript中的系统函数又称为内部方法,它们不属于任何对象,可以直接使用。它们可以完成许多很常用的功能。
1、 eval( 字符串表达式)
返回字符串表达式中的运算结果值。
例:test=eval("x=8+9+5/2");
document.write(test); //输出显示19.5
2、 escape(字符串)
返回字符串的一种简单编码,将非字母数字的符号转换为%加其unicode码的十六进制表示。
例如: escape("Hello there") 返回 "Hello%20there"
3、unescape(字符串)
将已编码的字符串还原为纯字符串。
4、parseFloat(字符串)
返回浮点数
5、parseInt(字符串,radix)
其中radix是数的进制,默认是十进制数 parseInt(字符串)