JS第二课(6.28)

1.数据类型转换

显示转换

隐式转换

string

.toString

String

+’ ‘、+” “

number

parseInt()

parseFloat()

Number()

+、-、*、/、%

boolean

Boolean()

!!

 

 a.转字符串

//转string
var num = 123
// var str = num.toString()
// var str = String(num)
// + 连接字符串
var str = num + ""
console.log(typeof num)
console.log(typeof str)
var bool = true
// var boolStr = bool.toString()
// var boolStr = String(bool)
var boolStr = bool + ""
console.log(typeof bool)
console.log(typeof boolStr)
var undfin = undefined
// var undfinStr = undfin.toString()    //Uncaught TypeError: Cannot read properties of undefined (reading 'toString')
// var undfinStr = String(undfin)  //string
var undfinStr = undfin + ""
console.log(typeof undfinStr)
var nu = null
// var nuStr = nu.toString()    //Uncaught TypeError: Cannot read properties of null (reading 'toString')
// var nuStr = String(nu)  //string
var nuStr = nu + ""
console.log(typeof nuStr)

注意:“+”运算符,可以用来连接字符串

undefined和null不能使用.toString()

 

b.转数字

显式转换:

parseInt()取整数

parseFloat()保留小数

Number()

隐式转换:

+ - * / %

//注释      
// var 变量=“”      // 值 类型
//字符串转数字
var str = "123"
var numberStr = Number(str)    //123 number
str = "123.12"
var numberStr = Number(str)    //123.12 number
var parseIntNum = parseInt(str) //123  number
var parseFloatNum = parseFloat(str) //123.12  number
var str1 = "123.12px111"
var numberStr = Number(str1)    // NaN number
var parseIntNum = parseInt(str1) // 123 number
var parseFloatNum = parseFloat(str1) // 123.12 number
// 隐式转换
var num = str*1    // 123 number
var num = str*1     // NaN number
// 其他转换类推
var num = +str1    // NaN number

// 布尔值转数字
var bool = true
var bool2 = false
var numBool = Number(bool)       // 1 number
var numBool2 = Number(bool2)     // 0 number
var numBool = parseInt(bool2)    // NaN number
var numBool = bool*1             // 1 number
// undefined 转数字
var unif = undefined
var numBool = Number(unif)    // NaN number
var numBool = parseInt(unif)  // NaN number
var numBool = unif*1          // NaN number

// null 转数字
var nu = null
var numnu = Number(nu)       // 0 number
var numnu = parseInt(nu)     // NaN number
var numnu = nu*1             // 0 number

注意:parseInt()取字符串整数,parseFloat()取小数(从左向右取所有数字,直到最后一个不是数字为止)

c.转布尔

显示转换:Boolean()

隐式转换:!!

  var str = "12px"
        var BooleanStr = Boolean(str)   // true boolean
            str = ""
        var BooleanStr = Boolean(str)   // false boolean
            str = "0"               
        var BooleanStr = Boolean(str)   // true  boolean
        console.log(BooleanStr)
        console.log(typeof BooleanStr)
        // 数字转布尔值
        var number = 123
        var BooleanNum = Boolean(number)   // true boolean
            number = 0
        var BooleanNum = Boolean(number)   // false boolean
            number = -0
        var BooleanNum = Boolean(number)   // false boolean
            number = -123
        var BooleanNum = Boolean(number)   // false boolean
            number = NaN 
        var BooleanNum = Boolean(number)   // false boolean
            number = Infinity // 正无穷
        var BooleanNum = Boolean(number)    // true boolean
        console.log(BooleanNum)
        console.log(typeof BooleanNum)
        // undefined转布尔值
        var unde = undefined
        var BooleanUnde = Boolean(unde)     // false boolean
        console.log(BooleanUnde)
        console.log(typeof BooleanUnde)
        // null转布尔值
        var nu = null
        var BooleanNu = Boolean(nu)     // false boolean
        console.log(BooleanNu)
        console.log(typeof BooleanNu)
        //  隐式转换 !! 一个感叹号代表取反,两个感叹号代表取正
        console.log(!unde)
        console.log(typeof !!unde)

注意:0、-0、NaN、" "、undefined、null转布尔值全部为false

一个感叹号取反,两个感叹号取正

2.运算符

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

        比较运算符 >  <  ==  >=  

        逻辑运算符 &&  ||  !

        赋值运算符 =  +=  -=  *=  /=  %=

        三元运算符 条件 ? 语句1 : 语句2

 

a.算术运算符 ++ -- 问题

 var i =1
    //    var res = i++    // 先赋值,再加1
    //    var res = ++i    // 先加1,再赋值
    //    console.log(i)
    //    console.log(res)
       var res = i++ - ++i
        /*
            思路:
                var r = i++
                r = 1
                i = 2
                var rr = ++i
                rr = 3
                var res = r - rr
        */
       console.log(res)     // -2
       i-- // 减1

 

b.比较运算符

var res
res = 1 > 2     // false
res = 2 > 1     // true
res = 2 == 2    // true
res = "1" < "2" // true
res = "12" > "2"// false 
// 思路:字符串情况下,从左往右比较,
res = "a" > "b" // false
// 比较 ascii对应的值
res = "12" > 2  // true 
// js解释器 ,它会自动将字符串转成数字进行比较
// >=  <=  !=
res = 13 >= 12  // true
res = 12 >= 12  // true
// !=
res = 12 != 13  // true
res = 12 != 12  // false

注意: = 赋值 == 相等 === 恒等

== 效率低于 === 因为==需要在底层转换一下数据类型

字符串的数字比较大小,从左往右比较

字符串比较ascii码下标

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

 // && 两边条件 转布尔值的时候为true
        res = false && true // false
        res = 1 && true     // true
        // || 只要有一个条件满足转布尔值为true的情况下,它就通过(true)
        res = false || true
        // ! 取反,转为布尔值
        res = !0
        console.log(res)

d.赋值运算符

var num = 1
    num += 1        // num = num + 1
    num -= 1        // num = num - 1
    num *= 1        // num = num * 1
    num /= 1        // num = num / 1
    num %= 1        // num = num % 1
  console.log(num)
 var i = "1"
 i+=1    // i = "1" + 1   11
 console.log(i) 
 i++          // 2 i++ 是将字符串转成数字再运算
console.log(i)

注意: +=1 和 ++ 的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值