一,java和JavaScript的关键字对比
java:
- 迭代:for,foreach(增强型for循环),do…while,while…do
- 判断:if…else,switch
- 关键字:return,break,continue
JavaScript
- 迭代:es6前:for,foreach(对象的属性的),for…of(es6及之后)do…while,while…do
- 判断:if…else,switch
- 关键字:return,break,continue
- ( ps:代码块里只能用break,不能用continue)
二,具体语法
1.for循环
// for循环
var array = [1, 2, 3, 4, 5]
for (var i = 0; i < array.length; i++) {
console.log("下标索引:",i+"的值为 ",array[i]);
}
// 输出结果:
下标索引: 0的值为 1
下标索引: 1的值为 2
下标索引: 2的值为 3
下标索引: 3的值为 4
下标索引: 4的值为 5
// 增强型for循环
// j是对象的属性
for (var j in array) {
// j不是数组下标,j的类型是string,值为0-4
console.log("j的类型为:",typeof j , "j的索引为:" , j)
}
// 输出结果:
j的类型为: string j的索引为: 0
j的类型为: string j的索引为: 1
j的类型为: string j的索引为: 2
j的类型为: string j的索引为: 3
j的类型为: string j的索引为: 4
var object = ["name:" + "kola", "age:" + "10"]
for (var l in object) {
console.log("l的类型为:", typeof l, ",l的索引为:" + l,",l的值为:",object[l])
}
// 输出结果
l的类型为: string ,l的索引为:0 ,l的值为: name:kola
l的类型为: string ,l的索引为:1 ,l的值为: age:10
//es6新增for-of,跟java里面的for-in是一样的
for (var k in array) {
console.log("k的类型为:", typeof k + ",k的值为 ", array[k])
}
// 输出结果
k的类型为: string,k的值为 1
k的类型为: string,k的值为 2
k的类型为: string,k的值为 3
k的类型为: string,k的值为 4
k的类型为: string,k的值为 5
2.while循环
// do-while,while-do
// do无论何种情况都会默认执行一次,然后进入循环条件判断,因为这里返回是false,所以总共只执行一次
do {
console.log("1111111111")
}while ("")
// 循环条件判断为false,所以执行0次
while (NaN){
console.log("2222222")
}
3.switch:
- switch在比较的时候,是使用的===,需要类型一致
- js的switch用法不太严谨,case后接任何的类型都可以,不像java有限制要是常量
// 这里的输出结果是“1111”,如果把括号里面的1双引号引起来,就表示类型变成string,就匹配不上了,只能输出默认值
switch (1) {
case 1:
console.log("1111")
break;
case true:
console.log(true)
break;
case undefined:
console.log("undefined")
break
case NaN:
console.log("NaN")
break;
default:
console.log("未匹配上")
break;
}