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

变量

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值