JavaScript基本语句

基本概述

JavaScript是脚本语言,从上到下解释执行,最小单位为语句或语句块,每个语句以分号结尾,每个语句块以右大括号结尾。
JavaScript可以将多条语句或语句块放到同一行,如果每一行只有一句语句的话,结尾的分号可以省略,但强烈建议不要这么做!因为若是压缩代码,所有语句将处于同一行,没有分号分隔的话后果不堪设想!
a = "1234" // 这样是不会报错的,但不建议
b = "1234" a = "1234"; b = "1234"; // 加上分号,那么就可以将代码放到同一行

赋值语句

JavaScript的赋值语句和C的赋值语句很相似,即变量=值,左值必须是变量名,右值可以是直接量,表达式,或函数执行式
a = "1234";

如果是多个赋值语句串的话,则从右依次向左赋值,例如

a = b = "1234";

b = "1234";
a = b;
右值可以是一个表达式,例如
a = 5 + 5;

右值也可以是函数的返回值,例如

function add(num1, num2) {
return num1 + num2;
}
a = add(5,5);

注意,若函数没有返回值,则会赋值为undefined

函数执行式

同样的,和C类似,格式类似为:
函数名([参数1[, 参数2[, ...]]]);
参数可以是任意个,这个在后面的JavaScript函数中会讲到。但注意,这一句只表示执行,而没有赋值,即使函数有返回值,也不会得到保存。当然,函数的返回值同样可以作为参数
function add(num1, num2){
return num1 + num2
}
add(add(5, 5), 5); // 15

语句块

语句块的构成和C的是一样的,如下:
逻辑语句 {
    基本语句;
    基本语句;
    ……
    [控制语句;] // 循环语句或多分支语句
}
结尾不用分号。语句块没有属于自己的作用域(后面的进阶会讲到)
 

JavaScript逻辑语句

前面讲过,学过C的再学JS很容易。事实上,JS的常用语句和C基本一致。

条件语句

和C一模一样,这里就不再赘述了
  • if(condition) { statement; }
  • if(condition) { statement1; } else { statement2; }
  • if(condition1) { statement1; } else if(condition2) { statement2; } else { statement3; }

循环语句

有以下几种
  • for(init; condition; statement) { statements; }
  • while(condition) { statements; }
  • do { statements } while(condition)
  • for(var in object) {statements; }

前三个大家都懂,就不多说。最后一个在C里面是没有的,它表示罗列对象里的属性,或者是数组里的值。举个例子:

var array = [1,2,3,4];
for(a in array) {
console.log(a); // 1234
}

在对象中的例子:

var obj = {
attr1: "value1",
attr2: "value2"
}
for(attr in obj) {
console.log("value of "+ attr + " is: " + obj[attr]);
}

for.. in的用法跟Python的for .. in..、PHP的foreach的用法都很相近,应该也比较好理解。

循环控制语句有break,continue,label等等,label有违代码规范(和goto差不多),不多阐述,其他两个有过C基础的不难理解

多分支语句

for(var i = 0; i < 5; i++) {
switch(i) {
case 0: {
console.log("0");
break;
}
case 1: console.log("1");break;
default: console.log("not 0 or 1");break;
}
}

这种做法不陌生,我们在C中也可以这么做。不同的是,JS中,case后的部分可以是变量或字符串,而C中不行

还有一种用法比较新颖,实用性也比较强
for(var i = 0; i < 5; i++) {
switch(true) {
case below2(i): {
console.log("i<2");
break;
}
case between2To5(i): {
console.log("2 <= i < 5");
break;
}
default: break;
}
}
function below2(i) {
return i < 2;
}
function between2To5(i) {
return i >= 2 && i < 5;
}

这样就可以在switch语句中加入表达式了,能这么做的缘由是JS的多分支语句是判断switch的参数和case的部分是否全等。这样就等效于if(below2(i) === true)了。

JavaScript快速入门(三)——JavaScript语句的更多相关文章

  1. javascript快速入门10--运算符,语句

    一元运算符 一元运算符只有一个参数,即要操作的对象或值.它们是 ECMAScript 中最简单的运算符. delete 运算符删除对以前定义的对象属性或方法的引用.例如: var obj = new ...

  2. JavaScript快速入门(四)——JavaScript函数

    函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)——JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...

  3. Web开发初探之JavaScript 快速入门

    本文改编和学习自 A JavaScript Primer For Meteor 和 MDN Web教程 前文 Web开发初探 概述 本文以介绍 JavaScript 为主,初学者掌握本文的内容后,将能 ...

  4. JavaScript快速入门-ECMAScript函数

    JavaScript函数(定义.参数.返回值.闭包.匿名函数) 一.函数定义 function functionName(arg0, arg1, ... argN) { statements } 函数 ...

  5. javascript快速入门3--分支判断与循环

    分支结构 单一选择结构(if) 二路选择结构(if/else) 内联三元运算符 ?: 多路选择结构(switch) var condition = true; if (condition) { ale ...

  6. javascript快速入门2--变量,小学生数学与简单的交互

    变量 对于变量的理解:变量是数据的代号.如同人的名字一样. var num;//在JavaScript中使用关键字var声明一个变量 在JavaScript中,使用上面的语法,就可以声明一个变量,以便 ...

  7. JavaScript快速入门(一)——JavaScript概览

    JavaScript是什么? JavaScript的诞生 在1995年前后,当时世界上的主流带宽为28.8Kbps,现在世界平均下载带宽为21.9Mbps(数据来源于http://www.netind ...

  8. JavaScript快速入门-BOM对象

    一.什么是BOM      概念 BOM(Browser Object Model)即浏览器对象模型.BOM提供了独立于内容,而与浏览器窗口进行交互的对象:      核心 由于BOM主要用于管理窗口 ...

  9. javascript快速入门1--JavaScript前世今生,HelloWorld与开发环境

    JavaScript历史 大概在1992年,一家称作Nombas的公司开始开发一种叫做C--(C-minus-minus,简称Cmm)的嵌入式脚本语言. Cmm背后的理念很简单:一个足够强大可以替代宏 ...

随机推荐

  1. ZOJ 2967 Colorful Rainbows 【Stack】

    解决此题方法类似于凸包,先把所有直线按照斜率a由小到大排序 斜率相同取b较大的,扔掉b小的 (可以在遍历的时候忽视).于是所有直线斜率不同. 准备一个栈 (手动模拟), 栈里面存放上一次能看到的“最上 ...

  2. Qt 获取字符串的UTF8编码值

    看到群里有人在问怎么获取字符串的UTF8编码值 自己测试了下 熟悉下函数 <span style="font-size:18px;">    ui->setupU ...

  3. phpmailer发送邮件,可以带附件

    先从网上下载phpmailer压缩包 将解压的文件导入到你的项目中 实例 require_once ('PHPMailer/class.phpmailer.php'); //引入phpmailer文件 ...

  4. http 连接复用

    定义 Http/1.0每次请求都需要建立新的TCP连接,连接不能复用.Http/1.1新的请求可以在上次建立的tcp连接之上发送,连接可以复用. 优点 减少重复进行tcp三次握手的开销,提高效率.注意 ...

  5. SQL__用命令删除定期的备份数据库文件

    用计划任务可以定期执行下列语句: FORFILES /P e:\test /M *.bak /C "cmd /C del /Q @path" /d -4 其中可更换目录与文件类型. ...

  6. 编译安装MongoDB C++ Driver (win8.1 vs2013)

    在C++中调用mongodb的库函数需要安装mongodb的c++driver,需要自己编译,(自己搞了一天半 =_=''' ) 官网Build MongoDB From Source 说To bui ...

  7. SuperSocket源码解析之启动过程

    一 简介 这里主要说明从配置系统引导启动SuperScoekt作为应用程序,且以控制台程序方式启动 二 启动过程 2.1 配置解析 从读取配置文件开始,直接拿到一个SocketServiceConfi ...

  8. C++静态库中使用_declspec(dllexport) 不能导出函数的问题

    在某项目中,有一些静态库,这些静态库中有类型命名的函数GET_XXX.在一次项目结构调整的时候,我想将调用这静态库的代码编译成DLL,并且将这些Get函数导出,我就直接就这些函数前面添加了_decls ...

  9. QVector 和vector的比较(QVector默认使用隐式共享,而且有更多的函数提供)

    QVector和vector的比较: Qvector默认使用隐式共享,可以用setSharable改变其隐式共享.使用non-const操作和函数将引起深拷贝.at()比operator[](),快, ...

  10. C# - 委托_求定积分通用方法

    代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...