重新认识javascript(三)变量控制结构

翻译 2013年12月01日 22:23:02

变量

JavaScript中变量是用关键字var来声明的

var a;
var name = "simon";

如果你声明一个变量,没有赋值给它,它的类型就是undefined

一个和其他语言如Java不同的地方是,在JavaScript中,块没有作用域;只有函数有作用域。所以如果在复合语句中使用var来定义一个变量(如变量定义在一个if控制结构中),这个变量在整个函数里面都是可见的。

运算符

JavaScript的数字运算符是+-*/%-%是求余运算符(模运算)。值通过=赋值给变量,也有复合的赋值语句,像+=-=。这些扩展出来就是x=x operator y

x += 5
x = x + 5
你可以分别使用++来实现自加和自减。它们可以被用作前置和后置运算。

运算符+ 也可以实现字符串连接

> "hello" + " world"
hello world

如果你把字符串和一个数字相加(或者其他类型的值),所有的都会被先转换为字符串,下面的可能会让你犯错:

> "3" + 4 + 5
345
> 3 + 4 + "5"
75

把一个空串和其他的值相加是一个将这个值转换成字符串的有效方式。

JavaScript中可以通过使用<,>,<=>=来做比较运算。这对数字和字符串都有效。等号运算相对来说简单一点。如果你给定两个不同类型的值,双等号会执行强制类型转换,这样有时会产生有趣的结果:

> "dog" == "dog"
true
> 1 == true
true
为了防止强制类型转换,使用===运算符

> 1 === true
false
> true === true
true

同样也有!=和!==运算符。

JavaScript也有位运算符。如果你想使用它们,同样也能使用得到(像其他语言中一样)。

控制结构

JavaScript有一个和C语言家族类似的控制结构集合。通过ifelse来实现条件控制语句;如果有需要你也可以将它们连在一起

var name = "kittens";
if (name == "puppies") {
  name += "!";
} else if (name == "kittens") {
  name += "!!";
} else {
  name = "!" + name;
}
name == "kittens!!"

JavaScriptwhile循环和do-while循环。第一个适用于基本的循环;第二个适用于你喜欢确保循环体至少被执行一次的循环。

while (true) {
  // an infinite loop!
}

var input;
do {
  input = get_input();
} while (inputIsNotValid(input))

JavaScript中的for循环和CJava中的一样:它允许你在一行中提供控制循环的信息。

for (var i = 0; i < 5; i++) {
  // Will execute 5 times
}

Switch表达式可用作基于一个数字或字符串的多个分支:

switch(action) {
    case 'draw':
        drawit();
        break;
    case 'eat':
        eatit();
        break;
    default:
        donothing();
}
如果你没有添加一个break表达之,执行代码将会直接走到下一个条件分支中。这通常是你不希望看到的事实上,如果你打算做一些有助于调试和维护的事情,那么在仔细考虑了的fallthrough代码之后加一个注释是非常有价值的。

switch(a) {
    case 1: // fallthrough
    case 2:
        eatit();
        break;
    default:
        donothing();
}

Default语句分支是可选的。只要你愿意,你可以在switch部分或者case部分使用表达式;它们之间将使用===运算符来做比较。



相关文章推荐

重新认识JavaScript

  • 2009年07月20日 10:44
  • 223KB
  • 下载

2. 继续Jinja2——变量过滤器、控制结构

过滤器就是加在变量后面,控制变量显示格式的一个参数。语法格式为竖线加参数名,如: Hello, {{name|title}}可用的参数有: safe 渲染值时不转义 ...

重新认识JAVASCRIPT

内容来源于从网上看到的一些文章。 主要介绍一些 javascript 比较混乱的语法和一些不太常用的用法。 基本语法 Js 是弱类型动态语言,所以任意变量名都可随时改变数据类型,在js 里面一切...
  • xwdev
  • xwdev
  • 2011年08月24日 17:46
  • 309

重新认识JavaScript

JavaScrpit在我眼中一直是web前端脚本语言,而这段时间的一些工作,让我对JavaScript有了一个全新的认识。   公司准备启动的一个手游项目,服务器端准备使用网易的开源框架pomelo。...

重新认识javascript的settimeout和异步

转载: http://www.cnblogs.com/jeffwongishandsome/archive/2011/06/13/2080145.html 今晚看到QLeelu...
  • wmqdn
  • wmqdn
  • 2012年05月11日 19:36
  • 245

JavaScript 流程控制结构(顺序/选择/循环while for/跳出循环)

1. 顺序结构 2. 选择结构 if(判断条件){ } else if(判断条件){ } else{ } - 要先写小范围的条件再写大范围的条件 - else if、els...

Linux重新学习--shell script--控制结构

三. shell 中的控制结构 任何编程语言都需要判断和循环两种控制结构,那么这两种结构在shell script中是什么样子的呢,让我们来看一下。 1.判断结构 判断结构分为两种 if 和 sw...
  • gjh558
  • gjh558
  • 2015年09月07日 22:04
  • 134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重新认识javascript(三)变量控制结构
举报原因:
原因补充:

(最多只允许输入30个字)