JS基础值基础概念下(关系,相等,条件操作符,if,do-while,while,for,for-in,lable,break,continue,with,switvh语句)

1.关系操作符

    比较符:大于(>),小于(<),大于等于(>=),小于等于(<=)

    比较规则:
       1.两个操作数都是数值,会进行数值的比较
       2.两个都是字符串,会比较两个字符串对应的字符编码值
       3.如果有一个操作数是数值,会将另外一个转换成数值,然后进行数值的比较
       4.如果有一个操作数是对象,会调用valueOf()的方法按照之前的方法比较,如果没有
          valueOf()方法,会调用toString()方法,按照之前的方法比较
       5.如果有一个操作数是布尔值,会将其转化成数值,然后进行比较

      注意:
          1.比较字符串的时候,实际比较的是两个字符串对应位置的每个字符的字符编码值,经过比较会返回一个布尔值
          2.大写字母的字符编码全部小于小写字母的字符编码

         var result = 'Brinck' < 'alphabet' ;         //true
         原因:B的字符编码是66,a的字符编码是97
         如果真正安好字母表顺序比较,必须转换成相同的大小写格式
         var result = 'Brinck'.toLowerCase() < 'alphabet'.toLowerCase ;         //false
         
         3.数值的比较:

               var result = '23' < ‘3’ ;        //true
               因为‘2’的字符编码是50,‘3’的字符编码是51
               var result = '23' < 3 ;          //false
               ‘23’会被转化成23
               var result = 'a' < 3 ;           //false
               此时a会被转换成NaN,NaN与任何数比较都是false

2.相等操作符

     相等:先转换在比较
     全等:仅比较不转换

1.相等和不相等

      操作符:相等 ==   ; 不相等 !=
      特点:
         1.如果两个操作数使用相等符号而且相等,返回true,
         2.如果两个操作数使用不相等符号而且不相等,返回true
         3.会进行强制转换

      转换规则:
         1.如果有一个操作数布尔值,会将其转换成数值,fale转换成0,true转换成1
         2.如果有一个操作数数字符串,另外一个是数值,会将字符串转换成数组进行比较
         3.如果一个操作数是对象,另外一个不是,会调用对象的valueOf()方法,将结果按照治安规则比较
         4.null和undefined相等,且两者都不能转换成其他他值
         5.NaN不等于任何数,包括NaN
         6.两个操作数都是对象,会比较他们是不是一个对象,如果都指向一个对象返回true

2.全等和不全等

     操作符:全等 ===    不全等 !==       
     特点:除了比较之前不转换操作数外,其他和相等和不相等一样
     var result1 = ( '55' == '55' ) ;     //true ;     
     var result2 = ( '55' === '55' ) ;     //true ;     
     var result3 = ( '55' == 55 ) ;     //true ;     
      var result4 = ( '55' ==  55 ) ;     //false ;     
      null == undefined            //true;
      null === undefined           //false;

3.条件操作符

        语法:     条件a ? 结果b : 结果c;
        解析 :如果满足条件a,返回结果b,否则返回结果c

        举例:
            5 > 3 ? '5大于3' : '5小于3' ;     //结果是‘5大于3’
            5 < 3 ? '5大于3' : '5小于3' ;     //结果是‘5小于3‘  

4.语句

1.if语句

     语法 : 
         if ( 条件 ){
                   //符合条件时执行的代码
            }else{
                   //不符合条件时执行的代码            
            }

      举例:
           if ( a > b ) {
                console.log('a大于b')
           } else {
                console.log('a小于b')
           }

2.do-while语句

      语法: 
            do {
                    // 放执行的代码
            } while (
                    // 判断条件
            )

       举例:
             var i = 0 ;
             do {
                  i += 2 ;
             } while( i < 10 ) ;
            在这个例子中,只要i小于10,就会一直执行下去,每次递增2

      注:1.do-while适合至少执行一次的情形
          2.要有条件出口,否则会死循环,出现栈溢出的情况

3.while语句

      语法:
      while ( 条件 ) {
            执行的代码  
      }

      举例:
      var i = 0 ;
      while ( i < 10 ) {
           i + = 2 ;
      }

      注:1.代码在执行前会先进行判断,符合条件执行代码,不符合不会执行
          2.要有条件出口,否则会死循环,出现栈溢出的情况

4.for语句

    for ( 初始条件,判断条件,改变初始条件) {
            // 执行代码
    }

   示例:
   
   for ( var i = 0 ; i < 10 ; i ++ ) {
       console.log ( i ) ;           
   }
   console.log ( i )             // 可在循环外部访问变量,但这里只会输出最终结果10
   
   也可以不在for里面定义变量
   var i ;
     for ( i = 0 ; i < 10 ; i ++ ) {
       console.log ( i ) ;           
   }

  也可以省略三个表达式,会进入无限循环
  for ( ; ; ) {

  }

5.for-in语句

  for ( var propName in window ) {
       console.log ( propName ) ;           //将window里面的每一个属性赋值给propName,输出顺序根据浏览器不同而不同
  }

  注:
      1.es5之前如果要迭代的变量值是null或者undefined,会报错,es5之后不在报错,会不执行循环体
      2.在使用for-of 之前,要确认是否为null或者undefined
      3.Safari3之前版本有一个bug,会导致某些属性值返回两次

6.label , break , continue语句

    语法 : label : statement ;
    描述 : 在js代码中添加标签,以便将来使用,可与break和continue使用,break,continue用于跳出循环,
          但两者存在一定区别,break是终止循环,continue是跳出当前循环,进入下一个循环

    var i, j;
    loop1:
        for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
        loop2:
            for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
               if (i === 1 && j === 1) {
                   continue loop1;
               }
            console.log('i = ' + i + ', j = ' + j);
            }
         }
         // Output is:
         //   "i = 0, j = 0"
         //   "i = 0, j = 1"
         //   "i = 0, j = 2"
         //   "i = 1, j = 0"
         //   "i = 2, j = 0"
         //   "i = 2, j = 1"
         //   "i = 2, j = 2"
         // Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2"

       var i, j;
       loop1:
           for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
            loop2:
               for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
                   if (i == 1 && j == 1) {
                       break loop1;
                    }
                   console.log("i = " + i + ", j = " + j);
                }
            }
       // Output is:
       //   "i = 0, j = 0"
       //   "i = 0, j = 1"
       //   "i = 0, j = 2"
       //   "i = 1, j = 0"
       // Notice the difference with the previous continue example

7.with语句

     语法 : with(expression) statement

     var qs = location.search.substring(1);
     var hostName = location.hostName;
     var url = location.href;
     如果使用with语句的话:
     with(location){
          var qs = search.substring(1);
          var hostName = hostName;
          var url = href;
     }

     说明: 使用with语句关联了location对象,意味着在with语句代码块内部,每个变量首先会被认为是一个局部变量,
        而如果局部变量如股票找不到变量的定义,会查询location对象中是否有同名属性,如果有,以location
        对象属性的值作为变量的值

   注:
       1.严格模式下不能使用with,会视为语法错误
       2.大量使用with语句会导致性能低下,也会给调试代码造成困难

8.switch语句

     语法:
         switch(expression){
               case value : statement
                  break ;
               case value : statement
                  break ;
               default : statement
         }
         说明:
             1.相当于执行了很多个if-else语句
             2.每一个case含义:如果表达式等于这个值,则执行后面的代码
             3.break用于跳出switch语句,如果没有break的话,执行完当前case,会接着执行下一个case
             4.default用于表达式不匹配前面任何一种情况时执行的代码
             5.可以在switch语句中使用任何数据类型
             6.case的值不一定是常量,可以是变量,甚至是表达式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值