

JavaScript是基于对象和事件驱动的脚本语言,主要应用在客户端。
特点:
1. 交互性(它可以做的就是信息的动态交互)
2. 安全性(不允许直接访问本地硬盘)
3. 跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关)
JavaScript与Java不同
1. JS是Netscape公司的产品,前身是LiveScript;Java是Sun公司的产品,现在是Oracle公司的产品。
2. JS是基于对象,Java是面向对象。
3. JS只需解释就可以执行,Java需要先编译成字节码文件,再执行。
4. JS是弱类型,Java是强类型。
JavaScript语法
每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量,语句,函数,数组等常见语言组成元素。
1. 变量
通过关键字var来定义,弱类型既是不用指定具体的数据类型。
例:var x = 3; x = “hello”;
注:JS中特殊的常量值:undefined,当变量没有初始化就被使用,该变量的值就是undefined(未定义)。
注意:Javascript的语句在结尾处是可以不用分号结束的,非严谨语言的特点。
但为了符合编程规范,需要象java一样定义结束符。
而且有些情况是必须写分号的,如:var x = 3 ; var y =5如果两条语句写在同一行,就需要分号隔开。
1)关键字:几乎跟Java一样
2)标识符,分隔符:和Java一样
3)注释:用了Java当中的这两种: // 和 /* */
4)数据类型:number类型、string类型、boolean类型、undefined(当变量声明但没有赋值)
5)变量:var (弱类型,类似于Java当中的Object)
6)在js当中,单引号和双引号是一样的,封装的都是字符串(但同时有两个引号封装的,内部的要用单引号)
7)全局变量和局部变量
全局变量----只要不是函数内部声明的,都是。并且不会以大括号来区分,也不会以<script>来区分
a、只要不在函数内部声明,那么一个变量即使在导入的.js文件中声明,在页面脚本中同样是有效的。
b、Java当中的变量的作用域是以大括号来区分,而JS不是。
局部变量----函数内部声明的和形参
函数内部的形参也是局部的,里面更改的值只能在内部有效,函数返回之后就无效了
例:
<html> <head> <title>javascript语言学习</title> </head> <body> <script type="text/javascript"> //1 标识符,关键字,分隔符---几乎和Java一样 //2 注释:只支持 //单行 和 /*多行*/ //3 变量:弱类型 , 所有的变量都是用var来声明---本质上就是Java当中的Object类型 var x=3; var y="abc"; //alert(x+","+y); x="xyz"; //alert(x); x=true;//js当中的布尔类型和C一样,有0 和 非0 的概念 x+=1; //alert(x); a=3.14;//因为浏览器有兼容性,所以一个变量不声明类型也可以直接对期赋值(但不要去读),因为是弱类型,都是var,写不写一样 //alert(a); //alert(aa);//由于变量aa没有声明也没有赋值,所以这里是出错的,没有
2. 运算符
Javascript中的运算符和Java大致相同。
只是运算过程中需要注意几点:
1, var x = 3120/1000*1000; x = 3120;而不是3000。
2, var x = 2.4+3.6 ; x = 6;而不是6.0
3, var x = “12” + 1; x = “121”; x = “12” – 1 ; x = 11;
加号对于字符串是连接符
4, && || 是逻辑运算符 & |是位运算符。
5, 也支持三元运算符
6, 特殊运算符 typeof : 返回一个操作表达式的数据类型的字符串。
var x = 3;
var y = “123”;
var z = false;
typeof(x); //number
typeof(y); //string
typeof(z); //boolean
例:
<html>
<head>
	<title>javascript语言学习</title>
</head>
<body>	
	<script type="text/javascript">
	//5 运算符:算术、赋值、比较、位运算、三元运算
 	//5.1算术运算
 	var a=3710;
 	//alert("a="+a/1000);
 	//alert("a="+a/1000*1000);
 	var b=2.3;
 	var c=5.7;
 	//alert(b+c);//8
 	//alert(11+23);//34
 	//alert("23"+11);//2311---string---加号为字符串连接
 	//alert("23"-11);//12 ---字符串遇到减号,自动会转换成数值型进行运算
 	//alert(true);//true 和数值进行运算时,true为1,flase为0
 	//alert(true+1);//2
 	//alert(false+1);//1
 	//alert(100%3);//1
 	//alert(100%-3);//1
 	//alert(-100%3);//-1 如果有负数,结果和前面那个数同符号。---和Java是一样的
 	
 	//5.2 赋值运算: = += -= *= /= %=
 	var n=3,m;
 	m=n++;//用法同Java
 	//alert("m="+m+",n="+n);//m=3,n=4
 	
 	var n=3,m;//和Java不同的是,变量可以重复声明
	 m = ++n;//用法同Java
	 //alert("m="+m+",n="+n);//m=4,n=4
	 
	 var n;
 	//alert(n);//4---这里没有对该变量重新赋值,所以用的还是前面的那个,不重新开内存
 	
 	var i=3;
 	i +=3;//其它的如:-= *= /= %= ,同理
 	//alert("i="+i);
 	
 	//5.3 比较运算符
 	var j=10;
 	//alert( j>5 ); //其它如 :< >= <= == != 等,同理
	 //alert( j==10 );
	 //alert( j!=10 );
	 
	 //5.4 逻辑运算符 && || !
	 var k=4;
 	//alert(k>3 && k<10); //true
 	//alert( !(k>3) ); //false
 	//alert( !k );//k是“非0”,再非一下则是flase---0
 	
 	//5.5 位运算符 & | ^ >> << >>>(无符号右移) ---和Java一样
 	var c = 6; //6: 110
 //3: 011
	 //alert( c&3 );// 010 --2
	 //alert(c^100^100); //c---6---一个数与两个相同的数进行异或运算结果仍然等于原数
	 //alert(c>>>1);//3
	 
	 //5.6 三元运算符---?号表达式 ----和java一样
	 //alert(3>0?100:300);
	 
	 var xxyy;
 	//alert(xxyy); //undefined---如果一个变量声明之后没有赋值,那么就是该值
 	alert(xxyy==undefined);//true ----这个undefined代表的是和true,false等一样的,是一个值,因此不要用引号
 	alert(xxyy=="undefined");//false
	</script>
</body>
</html>3. 语句(与Java语句格式相同)
1. 判断结构(if语句)
注:var x = 3;
if(x==4)//可以进行比较运算。
if(x=4)//可以进行赋值运算,而且可以同样进行判断。不报错。
因为在Js中0或者null就是false,
非0或者非null就是true(通常用1表示)。
所以if(x=4)结果是true;
可以通过if(4==y)来解决该问题。因为4=y不会进行判断,而是会报错。
2. 选择结构(switch语句)
与java不同的是:因为弱类型,也可以对字符串进行选择。
3. 循环结构(while语句,do…while语句,for语句)。
注:不同的是,没有了具体数据类型的,使用时要注意。
例:
<html>
<head>
	<title>javascript语言学习</title>
</head>
<body>
	<script type="text/javascript">
	/*
	//if语句
	var x=3;
	if (x>0){
	alert("yes");
	} else {
	alert("no");
	}
	
	if (x-4) {//非0 即是 true,除了0以外的数都是非零的数,即为true
	alert("yes2");
	} else {
	alert("no2");
	}
	
	if (x=4) {//一个“=”号是赋值,赋的值是4,该值同时也作为整个表达式的值---非0, 即是 true
	alert("yes3");
	} else {
	alert("no3");//如果把上面的4改为0,则九九乘法表例子:
<html>
<head>
	<title>javascript语言学习</title>
	<link rel="stylesheet" href=table.css>
</head>
<body>
	
	<script type="text/javascript">
	a:for (var x=0;x<3;x++){
	for (var y=0;y<4;y++){
	document.write("x="+x+" ");
	break a;
	}
	document.write("<br/>");
	}
	</script>
	<hr/>
	<h2>九九乘法表</h2>
	<script type="text/javascript">
	for (var x=1;x<=9;x++){
	for (var y=1;y<=x;y++){
	document.write(y+"*"+x+"="+x*y+" ");
	}
	document.write("<br/>");
	}
	</script>
	<br/>
	<h2>九九乘法表</h2>
	<script type="text/javascript">
	document.write("<table>");
	for (var x=1;x<=9;x++){
	document.write("<tr>");
	for (var y=1;y<=x;y++){
	document.write("<td>"+y+"*"+x+"="+x*y+"</td>");
	}
	document.write("</tr>");
	}
	document.write("</table>");
	</script>
</body>
</html>
