JavaScript 的基本语法
1、语句
JavaScript区分大小写,每条语句以分号;
结尾,用大括号{}
表示作用域(而不是Python中的缩进),所以每条语句和变量之间可以有任意空格、Tab或回车。JavaScript用C、C++风格的/*..*/
表示注释。
2、变量
JavaScript 是动态数据类型,即一个变量的类型随着其值的变化而变化。变量用var
关键字声明,变量名可以用字母、数字、下划线等组成。常用的数据类型有字符串、数字、布尔、数组、对象等,字符串用双引号表示。变量及数据类型的举例如下:
var x, y, xx, y_y //声明变量时无须指明类型
x = 45 //整型
y = 3.1415926 //浮点型
z = true //布尔型
xx = new Array(x, "hello", 12, true) //数组类型
y_y = {language:"English", title:"python programming"} // 对象类型
var zz3 = false //在变量定义时直接赋值
var arr = new Array()
arr[0] = "hello world" //给属组元素赋值
arr[1] = "I'm python programmer"
JavaScript中的对象类型与Python中的Dictionary类型相似,都是用大括号以键/值对的方式表达数据,但其语法不完全相同。在Python中Dictionary的“键”是任意数据类型,示例如下:
//这里有Python代码中Dictionary的使用方法
>>> dict = {"language": "English", "title": "python programming"}
>>> dict
{'language': 'English', 'title': 'python programming'}
>>> dict["language"] = "France"
>>> dict[4] = "new element"
>>> dict
{'language': 'France', 'title': 'python programming', 4: 'new element'}
而在JavaScript的对象中,“键”只能以成员变量的方式出现,定义时键上不加双引号,示例如下:
//这里是JavaScript中对象的使用方法
var obj = {language : "English", title : "python programming"}
//既可以使用下标访问,也可以使用成员变量访问
obj["language"] = "France"
obj.language = "Japanese"
3、操作符
常用操作符与Python类似,有+、-、*、/、%、==、>=、<=等。此外,JavaScript还允许自增操作(++)、自减操作(--)。操作符的示例如下:
> txt1 = "python";
"python"
> txt2 = "非常好的编程语言";
"非常好的编程语言"
> txt3 = txt1 + "是" + txt2;
"python是非常好的编程语言"
> number = 5 + 4;
9
> number--;
9
> number
8
> txt4 = txt3 + number;
"python是非常好的编程语言8"
> number += 3;
11
> ret = number < 10;
false
> ret2 = number == 11;
true
4、函数
JavaScript中用关键字function定义函数,语法如下:
//函数定义
function functionname(param1,param2...){
Block_of_function;
}
//函数调用
functionname(param1,param2);
和Python一样,JavaScript函数中的返回值是可选的,如果函数有返回值,则可以在block_of_function
中用return语句返回,示例如下:
function sum(a,b,c){
return a+b+c;
}
result = sum(5,6,10); //result = 21
5、判断语句
JavaScript中有两种逻辑控制语句:if
和switch
。if
语句用于对不同的条件执行不同代码块;switch
语句用于对一个表达式的不同结果执行不同的代码块。语法如下:
//if语句语法,其中if、else if、else是关键字
if(condition1){
block_of_condition1;
}else if(condition2){
block_of_condition2;
}else{
block_of_others;
}
//switch语句语法,其中switch、case、default、break是关键字
switch(expression){
case value1:{
block_for_value1;
break;
}
case value2:
block_for_value2;
break;
default:
block_for_others;
}
语句if 的语义与Python相似,此处不再举例。对语句switch举例如下:
var day = new Date().getDay();
switch (day){
case 1:{
today = "今天是星期一";
tomorrow = "明天是星期二";
break;
}
case 2:
today = "今天是星期二";
break;
case 3:
today = "今天是星期三";
break;
case 4:
today = "今天是星期四";
break;
case 5:
today = "今天是星期五";
break;
default:
today = "今天是周末";
break;
}
每个条件的block中可以放多条语句,但是每个块中都应该以break语句结尾。
注意: switch 语句的每个块中都应该以break作为最后一条语句。
6、循环语句
JavaScript的循环语句有for
和while
两种,各有两种用法。for的第1种语法如下:
//for 形式一,与Java/C/C++中的for语句类似:
for(sentencel; sentence2; sentence3){
Block_of_loop;
}
其中sentence1 在for语句开始时执行且只执行一次;sentence2 在每个loop开始时执行,sentence2 应该返回一个布尔值,如果sentence2 的结果为true,则执行该loop,否则立即结束for循环;sentence3 在每次循环结束时执行。for语句的典型用法如下:
for(var i=0; i < 10; i++){
document.write("<br>");
}
本例中的循环体将执行10次,即在document中写入10个<br>
标签。
for 的第2 种用法和while语句与Python中的语义相似,此处只列出其语法规则:
//for 形式二,与Python的for语句类似:
for(x in array){
block_of_loop;
}
//while 形式一,先判断布尔表达式再执行循环体,如果布尔表达式为假则终止循环
while(expression){
block_of_loop;
}
//while 形式二,先执行循环体再判断布尔表达式,如果布尔表达式为假则终止循环
do{
block_of_loop;
}while(expression);
下面是一个捕捉鼠标单击事件来触发的函数示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="message"></div>
<!--button是一个按钮控件,其onclick属性定义当前用户单击按钮时执行的javascript脚本-->
<button type="button" onclick="hello();">Try it</button>
<!--<script src="myScript.js">外部链接方式</script>-->
<!--内部嵌入方式-->
<script>
function hello(){
document.getElementById("message").innerHTML="Hello world of Javascript";
}
</script>
</body>
</html>