重新认识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部分使用表达式;它们之间将使用===运算符来做比较。



js之DOM深入学习总结

DOM编程深入学习
  • liujie19901217
  • liujie19901217
  • 2016年07月05日 21:45
  • 2313

c笔记10---多文件操作,Makefile,结构体 struct 及结构体变量,重命名 typedef

1.    一个程序分装在两个 .c 文件里面(同一个文件夹),需要增加一个 .h 文件,然后两个 .c 文件都 include 那个 .h 头文件。     而且一个 .h 头文件只能链接一个 ....
  • wolfsun3
  • wolfsun3
  • 2015年09月30日 16:34
  • 1145

iOS-FMDB 更新数据库表结构

接上一篇增删改查: http://blog.csdn.net/sinat_30162391/article/details/49622841这一篇介绍更新表结构// 创建数据库 - (FMData...
  • sinat_30162391
  • sinat_30162391
  • 2016年11月07日 00:24
  • 1482

重新认识JavaScript

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

shell程序设计-变量条件控制结构函数

  • 2015年06月02日 17:17
  • 6KB
  • 下载

ksh 基础知识 shell简介 变量数组 控制结构 函数 调试

  • 2009年05月19日 19:28
  • 190KB
  • 下载

vbs基本知识点,包括变量,控制结构,过程,常用函数!

  • 2011年07月07日 16:24
  • 3KB
  • 下载

重新认识javascript的settimeout和异步

今晚看到QLeelulu的一道JavaScript面试题(setTimeout),稍微想了一下,好不容易连猜带蒙,凑巧说对了答案。但是原因到底是什么呢?自己一时也说不太清楚,反正感觉就是一个死循环造成...
  • z69183787
  • z69183787
  • 2014年03月25日 19:37
  • 984

重新认识JAVASCRIPT

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

重新认识JavaScript

JavaScrpit在我眼中一直是web前端脚本语言,而这段时间的一些工作,让我对JavaScript有了一个全新的认识。   公司准备启动的一个手游项目,服务器端准备使用网易的开源框架pomelo。...
  • liwenxin_at
  • liwenxin_at
  • 2015年09月20日 21:21
  • 196
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重新认识javascript(三)变量控制结构
举报原因:
原因补充:

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