js学习第二天

运算符

1  算术运算符  +  - *  /  ++  --  %

      console.log(1 + 2)  
      // 3
      console.log('1' + 2) 
      // 字符串参与的加其实是拼接 '1'  + '2'   -> '12'
      console.log(+8)
      // 表示正值
      console.log('12' - 2) 
      // 12 - 2 -> 10
      console.log(20 * 2)
      // 40
      console.log(4 / 3)
      // 1.333333333
      console.log(4 / 2) 
      // 2

      
      let x = 5
      //let y = x++ // x++整体赋值给y,用的是x原有的值
      let y = ++x // ++x整体赋值给y,用的是x加1后的值
      // x++ // 让x在原有基础上加1
      // ++x // 让x在原有基础上加1
      console.log(x) // 6
      console.log(y) // 6

      let i = 3,
          j = 4,
          k
          ++i
          j++
          k = j++
      console.log(i, j, k) // 4 6 5
      // % 取模运算符
      console.log(4 % 2) // 0
      console.log(4 % 3) // 1
      let num = 25
      console.log(num % 5 == 0)

2 关系运算符 >  < >=  <=  ==  === !=  !==

概念:两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值,作为比较运算的结果。

console.log(3>2)  true
 console.log(10 <= 10)  true

 == 不严格等于,只要内容相同即可

console.log(5 == 5)   true
console.log(5 == '5')   true

=== 严格等于,内容与类型都需要一样

注意:null在严格等于和不严格等于输出的结果都是true

           NaN在严格等于和不严格等于输出的结果都是false

           undefined在严格等于和不严格等于输出的结果都是true

      console.log(5 === 5) // true
      console.log(5 === '5') // false
      console.log(null == null) // true
      console.log(NaN == NaN) // false
      console.log(undefined == undefined) // true
      console.log(null === null) // true
      console.log(NaN === NaN) // false
      console.log(undefined === undefined)// true
      console.log(null == undefined) // true
      console.log(null === undefined) // false

null与undefined区别? js基础面试题 

1.null为空值,会在将来指向某个值   undefined表示未定义

2.null在转化为数值型时0   undefined转化为数值型为NaN

3.null 通过 typeof 判断类型的时候结果的输出是 object ; 而 undefined 的类型是 undefined 

!= 表示对==的否定

!===表示对===的否定

      console.log(5 != '5') // false 对==的否定
      console.log(5 !== '5') // true 对===的否定

 3.逻辑运算符 && || !

概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。

      表达式1&&表达式2

           判断表达式1的值,转布尔类型假如为true,直接返回表达式2的值

           表达式1的值转布尔类型假如为false,直接返回表达式1的值

      console.log(5 > 3 && 10 < 5) // true&&false  false
      console.log(5 > 3 && 10 > 5) //  true&&true true
      console.log(5 == 3 && 10 < 5) // false&& false false
      console.log(5 && 6) // 6
      console.log(10 > 8 && 0) // 0
      console.log('' && 100) //''

     逻辑与短路现象

        表达式1的值转布尔类型假如为false,直接返回表达式1的值,此时不会执行表达式2的值

      let i = 3
      console.log(null && ++i)
      console.log(i) //3

    ||   判断表达式1的值,转布尔类型假如为true,直接返回表达式1的值

         表达式1的值转布尔类型假如为false,直接返回表达式2的值,

      console.log(5 > 3 || 10 < 5)  true
      console.log(5 > 3 || 10 > 5)  true
      console.log(5 == 3 || 10 < 5)  false
      console.log(5 || 6) // 5
      console.log(10 > 8 || 0) // true
      console.log('' || 100) // 100
      let j = 3
      console.log(null || ++j)
      console.log(j) //4

      console.log(!true)
      console.log(!0)
      let num = 'hello'
      console.log(!!num) // true

   

if语句

1 if单分支

      if(条件) {  条件成立时候执行的语句}

      执行过程 条件成立(转成布尔类型为true) 执行大括号里的代码,条件不成立,if什么也不执行,执行大括号后面的代码

       成绩>=90 发个小红花
       const score = 85
       const score = +prompt('请输入你的成绩')
       if (score >= 90) {
       alert('一朵小红花奖励')
      }

2 if双分支

const score = +prompt('请输入你的成绩')
       if (score >= 90) {
         alert('一朵小红花奖励')
       } else {
         alert('继续加油')
       }

3 if多分支

>=90 A 80~90 B 60~80 C <60  D
       const score = +prompt('请输入你的成绩')
       if (score >= 90) {
         alert('您的等级为A!!!')
       } else if (score >= 80) {
         alert('您的等级为B!!!')
       } else if (score >= 60) {
         alert('您的等级为C!!!')
       } else {
        alert('准备补考😭')
       }

 4  if嵌套if

const score = +prompt('请输入你的成绩')
      if (score >= 90) {
        alert('非常棒!!!')
        if (score >= 95) {
          alert('等级为A+')
        } else {
          alert('等级为A')
        }
      } else if (score >= 80) {
        alert('您的等级为B!!!')
      } else if (score >= 60) {
        alert('您的等级为C!!!')
      } else {
        alert('准备补考😭')
      }

5 三目运算符 

格式 console.log (数值1 > 数值2 ? '真' :'假')

 // ?:
      console.log(5 > 20 ? '真' : '假')
      //  求两个数最大值
      let num1 = 10,
        num2 = 20
      num3 = 32
      console.log(num1 > num2 ? num1 : num2)
      let max = num1 > num2 ? num1 : num2
      max = max > num3 ? max : num3
      console.log(`max=${max}`)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值