JavaScript基本语法

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中有两种逻辑控制语句:ifswitchif语句用于对不同的条件执行不同代码块;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的循环语句有forwhile两种,各有两种用法。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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容