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. 使用 getopt() 进行命令行处理

    引言 在早期的 UNIX® 中,其命令行环境(当时的唯一用户界面)包含着数十种小的文本处理工具.这些工具非常小,通常可很好地完成一项工作.这些工具通过较长的命令管道链接在一起,前面的程序将其输出传递给 ...

  2. 基于visual Studio2013解决C语言竞赛题之0517矩阵

     题目

  3. BZOJ 2287: 【POJ Challenge】消失之物( 背包dp )

    虽然A掉了但是时间感人啊.... f( x, k ) 表示使用前 x 种填满容量为 k 的背包的方案数, g( x , k ) 表示使用后 x 种填满容量为 k 的背包的方案数. 丢了第 i 个, 要 ...

  4. [转]CentOS 6.5安全加固及性能优化

    原文链接:http://os.51cto.com/art/201312/423095.htm Centos 6.5 优化 一些基础优化和安全设置 这个也挺好 说明:经常玩Linux系统的朋友多多少少也 ...

  5. initialize和init区别

    Objective-C很有趣的一个地方是,它非常非常像C.实际上,它就是C语言加上一些其他扩展和一个运行时间(runtime). 有了这个在每个Objective-C程序中都会起作用的附加运行时间,给 ...

  6. Jsp的include指令静态导入和动态导入的区别

    1.什么是静态导入? 静态导入指的是,将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句,它会把目标页面的其他编译指令也包含进来. include的静态导入指令使用语法: <%@ ...

  7. Mapper XML Files详解

    扫扫关注"茶爸爸"微信公众号 坚持最初的执着,从不曾有半点懈怠,为优秀而努力,为证明自己而活. Mapper XML Files The true power of MyBatis ...

  8. 海量数据存储之Key-Value存储简介

    Key-value存储简介 具备高可靠性及可扩展性的海量数据存储对互联网公司来说是一个巨大的挑战,传统的数据库往往很难满足该需求,并且很多时候对于特定的系统绝大部分的检索都是基于主键的的查询,在这种情 ...

  9. PHP - 使用 Pear 进行安装和卸载包

    安装: 首先运行到php根目录: 输入要安装的包文件名: 使用语法: pear install 要安装包的名称 回车确认: 如果没有其他意外,显示安装成功. 查看安装的包的信息: 语句: pear i ...

  10. EF的两种延迟加载

    EF的两种延迟加载 EF的延迟加载一: 在一次查询以后得到temp,然后在temp上直接进行查询得到temp2,我们调用temp2的时候,是直接为temp生成sql脚本的,没有生成temp的脚本,也就 ...