js选择、循环与java的区别

博客主要对比了JavaScript与Java在条件和循环语句上的使用。if条件表达式使用方法类似,但表达式解析不同,Java只能是布尔值,JS允许多种类型。switch语句二者无差异。while、do - while、for、for - in使用方法与Java类似,for - in相当于Java的foreach。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

if条件表达式:

js独特的表达式解释:

代码块的使用:

检查变量是否存在:

使用三元运算符代替if

switch语句:

while,do-while,for,for-in


 

 

 

 

if条件表达式:

与java使用方法一样,不过对于表达式的解析不一样。

if('表达式一'){
  result = '表达式一成立'; //result就是自己定义的变量,没有具体意义
}else if('表达式二'){
  result = '表达式一不成立且表达式二成立';
}else{
  result = '上面的表达式都不成立';
}

js独特的表达式解释:

java表达式只能是true与false,而js通允多种类型,不过最后都会编译boolean型

if('1' == 1){ //==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换 在这里 字符串'1' 转换为 数字 1 所以表达式成立
  result = '\'1\' == 1';
}
"'1' == 1"
if('1' === 1){ //===:用来检测两个操作数是否严格相等,不允许类型转换。所以这里肯定是不成立的
  result = '\'1\' === 1';
}
undefined
if(3){ //数字转boolean时,0为false,1为true
  result = '3为true';
}
"3为true"
if(0){
  result = '0为false';
}
undefined
if(null){ //null转boolean为false,这里是不成立的
  result = ' null为false';
}
undefined
if('aa'){ //字符串转boolean为true
  result = ' aa为true';
}
" aa为true"

代码块的使用:

{
  result = '1';
  {
    result = 2;
  }
}
//等价与下边代码,使用{}是为了增加代码可读性与可维护性
  result = '1';
  result = 2;

检查变量是否存在:

看起来,更像是折中,既然typeof会返回数据的类型,而只有不存在的变量与未赋值的变量会返回 undefined,那么只要返回的不是undefined就说明这个变量已经存在了。

var result = '';
undefined
if(typeof somevar !== "undefined"){ //若somevar不存在,或只是定义而未赋值 表达式成功
  result =  'yea';
}
undefined
result; //可见if语句未执行
""

使用三元运算符代替if

//三目运算符使用
var result  = (1>2) ? 1:2;  //当表达式(1>2)成立,执行 : 前面的,不成立执行 :后面的,无论表达式多复杂只要分清相互间的连接就能得到正确的答案
//if语句实现相同功能
if(1>2){
  result = 1;
}else{
  result = 2;
}

//三目运算符看起来更加整洁,不过随着条件越来越多,三目操作符会难以理解如
var result  = (1>2) ? 1:2>3 ? 2:3; //答案是result = 3

switch语句:

与java没有不同

var a = '1';
undefined
var result = '';
undefined
switch(a){  //括号中的表达式可以是任何能提供返回值的东西
  case 1:
    result = 'Number 1';
    break; //break是case的结束符,有时候故意省略。作用是相邻的case共享一段代码
  case '1':
    result = 'String 1';
    break;
  default: //尽量使用default,这样当case找不到匹配值,也能返回一些有用的值
    result = 'I don\'t know';
    break;
}
"String 1"

while,do-while,for,for-in

与java使用方法一样,其中for-in相当于java的foreach被用来遍历某个数组。while与do-while的区别分别是先判断在执行与先执行在判断

var i = 0;
undefined
while(i < 10){
  i++;
}
9
var j = 0;
undefined
do{
  i++;
}while(i<10);
10
for(var k = 0; k < 10; k++){}
undefined
k
10

var a =  ['a','b','c','x','y','z'];
for(var i in a){ //用来遍历a数组
  result += 'index:'+i+',value: '+a[i]+'\n';
}
"String 1index:0,value: a
index:1,value: b
index:2,value: c
index:3,value: x
index:4,value: y
index:5,value: z
"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值