JavaScript(二)

  • 隐式类型转换

    • 算数运算符
      — * / % :默认都进行数字的隐式转换
      +:
      如果有字符串,隐式转换为字符串
      没有字符串,默认转换为数字
      如果有对象,默认转换为字符串

          console.log(1+ 1 + '1' + true)  // 21true
          console.log(true + true + undefined + '')  // 'NaN'
          console.log(true + true + ' ' + undefiend)  // '2undefined'
      
    • 关系运算符
      <, >, >=, <=
      如果有布尔值,先转换为数字
      如果有数字,都默认隐式转换为数字
      如果都为字符串,进行ASCII编码比较

         console.log(null >= 0); // true
         console.log(undefined <= 0); // false
         console.log(2 == true); // false
         console.log('true' == true); // false
         console.log(1 == '1') // true
         console.log('2' > '11');
         console.log('112' > '1119');
         console.log('b' > 'a');
         console.log(1 < 'a');
      

      == :null 和 undefined 互相相等,且等于自身,跟其他的都不相等

          console.log(null == undefined); //true
          console.log(null == null); // true
          console.log(null == 0); // false
      

      === :不会进行隐式转换(恒等于)
      先比较数据类型, 在比较值是否相等,如果都相等,才会返回true;

    • 逻辑运算符
      !:全部隐式转换为布尔类型,然后再取反

        console.log(!''); // true
        console.log(!'  '); // false
      

      || :有一真即返回

        console.log(10 || 0); // 10
        console.log('' || false); // false
        console.log(0 || 100); //100
        console.log('abcd' || 'efg'); // 'abcd'
      

      && :有一假即返回

          console.log(10 && 0); // 0
          console.log('' && false); // ''
          console.log(0 && 100); //0
          console.log('abcd' && 'efg'); // 'efg'
      
  • 三种弹窗
    函数 (方法) 执行,一定有返回值!!!

    1. 提示框 alert()
      返回值:undefined

    2. 输入框 prompt()
      返回值:点击确定会得到用户输入的字符串;点击取消会得到null

    3. 警告框 confirm()
      返回值:点击确定返回true,点击取消返回false

    注意点:Js是单线程语言,弹窗会阻塞JS代码运行

  • 进制转换
    二进制 0 1
    八进制 0 - 7
    十进制 0 - 9
    十六进制 0 - f

    toString(): 10进制转换为其他进制, 返回一个字符串

    var a = 10; console.log(a.toString(8))   // 12
    

    parseInt(): 其他进制转换为10进制,返回一个数字

    var b = 7;
    var c = 1101;
    console.log(parseInt(b, 2)); //NaN
    console.log(parseInt(b, 16)); //7
    console.log(parseInt(c, 2)); //13
    console.log(parseInt(c, 8)); //13
    
  • 分支语句
    单分支语句:if 有一个条件满足就执行代码块,后面无论条件是否成立,都不执行

    if(条件表达式) {
    }
    
    if(条件表达式) { 
    }else { }
    
    if(条件表达式){
    }else if {
    }else { }
    
    var a = 3
    if ( a > 0 ) {
        alert(a)
    } else {
        alert('a 小于 0')
    }
    

多分支语句: switch 要匹配的值和匹配的值要恒等于,才可以执行代码

case穿透:有一个case满足条件就执行代码, 无论后面的case是否满足
条件都执行.如果有default也执行

break: 当switch语句运行时, 遇见break,就终止语句

switch(要选择的值) {
   case 要匹配的值:
              代码块
   case 要匹配的值:
              代码块
   default:
          代码块
}

var a = 2;
switch(a) {
   case 1:
     alert('这个数字是1');
   case '10':
     alert('10');
   case 2:
     alert('这个数字是2');
   default:
      // 所有case都不满足, 默认执行default
      alert('否则');
}

区别:swich 适合使用在固定值,不能进行逻辑判断
if 适合使用范围逻辑判断,且里面的内容多样,可以是字符串,数值等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容