重新认识javascript(三)变量控制结构
来源:互联网 发布:网络连接dns未响应 编辑:程序博客网 时间:2024/05/17 04:33
变量
在JavaScript中变量是用关键字var来声明的
var a;var name = "simon";
如果你声明一个变量,没有赋值给它,它的类型就是undefined。
一个和其他语言如Java不同的地方是,在JavaScript中,块没有作用域;只有函数有作用域。所以如果在复合语句中使用var来定义一个变量(如变量定义在一个if控制结构中),这个变量在整个函数里面都是可见的。运算符
JavaScript的数字运算符是+,-,*,/和%-%是求余运算符(模运算)。值通过=赋值给变量,也有复合的赋值语句,像+=,-=。这些扩展出来就是x=x operator y。
x += 5x = x + 5你可以分别使用++和—来实现自加和自减。它们可以被用作前置和后置运算。
运算符+也可以实现字符串连接
> "hello" + " world"hello world
如果你把字符串和一个数字相加(或者其他类型的值),所有的都会被先转换为字符串,下面的可能会让你犯错:
> "3" + 4 + 5345> 3 + 4 + "5"75
把一个空串和其他的值相加是一个将这个值转换成字符串的有效方式。
在JavaScript中可以通过使用<,>,<=和>=来做比较运算。这对数字和字符串都有效。等号运算相对来说简单一点。如果你给定两个不同类型的值,双等号会执行强制类型转换,这样有时会产生有趣的结果:
> "dog" == "dog"true> 1 == truetrue为了防止强制类型转换,使用===运算符
> 1 === truefalse> true === truetrue
同样也有!=和!==运算符。
JavaScript也有位运算符。如果你想使用它们,同样也能使用得到(像其他语言中一样)。
控制结构
JavaScript有一个和C语言家族类似的控制结构集合。通过if和else来实现条件控制语句;如果有需要你也可以将它们连在一起
var name = "kittens";if (name == "puppies") { name += "!";} else if (name == "kittens") { name += "!!";} else { name = "!" + name;}name == "kittens!!"
JavaScript有while循环和do-while循环。第一个适用于基本的循环;第二个适用于你喜欢确保循环体至少被执行一次的循环。
while (true) { // an infinite loop!}var input;do { input = get_input();} while (inputIsNotValid(input))
JavaScript中的for循环和C和Java中的一样:它允许你在一行中提供控制循环的信息。
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(三)变量控制结构
- 重新认识javascript(一)
- 重新认识javascript(二)
- 重新认识javascript(四)
- 重新认识javascript(五)
- 重新认识View(三)
- JavaScript: 重新认识JS的全局变量跟局部变量 .
- 重新认识JAVASCRIPT
- 重新认识JavaScript
- 重新认识JavaScript
- 重新声明 JavaScript 变量
- 对JavaScript的重新认识
- Android程序的结构---重新认识Android(1)
- 重新认识java(三) ---- 面向对象之继承!
- Fiddler的实践心得(三): 重新认识Decode
- 重新认识java(三) ---- 面向对象之继承!
- 不要重新定义JavaScript变量
- 重新认识javascript的settimeout和异步
- [angularjs]hello world
- Codeforces 369D. Valera and Fools
- LA 3720 highway(利用动态规划思想,将复杂度急降,9ms)
- contiki -2.6中UDP数据包的发送流程
- CUDA在Windows的安装和使用
- 重新认识javascript(三)变量控制结构
- 《时间即生命》—— 梁实秋
- 消息映射
- Q9头和BNC头的区别
- 怎样算得上熟悉TCP/IP编程(协议)
- OC之【深拷贝(mutableCopy)和浅拷贝(copy)】
- 弗吉尼亚-伍尔夫:在优雅和疯癫之间游走
- git(1)
- ubuntu下设置共享目录