美文网首页
js数据转换

js数据转换

作者: 败于化纤 | 来源:发表于2023-03-13 11:15 被阅读0次

    操作符和表达式

    1.操作符

    定义:

    • 操作符是js程序中操作值的符号。
    • 通过操作符可以构建复杂表达式

    操作数

    • 操作数指操作符可以操作值的数量
      一元操作符:可以操作一个值
    -100
    a++
    ++a
    

    二元操作符:可以操作两个值

    1+2
    a = 100
    a === b
    let a
    

    三元操作符:可以操作三个值

    a ? 100 : -100
    

    操作符的结果

    • 所有的操作符在操作值的时候必须返回值

    操作符的分类

    操作符是否有破坏性

    • 破坏性的操作符:指操作符的运算结果会修改之前的值
      所有的赋值操作符都是破坏性的
      ++ -- 一元操作符也是破坏性的
    • 非破坏性的操作符
      不会对原有的值产生影响

    从功能角度分类

    第一组:算数操作符
    • 一元操作运算符 :
      定义:对一个值进行操作返回操作后的值,特点:它拥有最高优先级,右结合性的特点。
      -(负号)
      +(正号):将操作的值转换为数值并返回转换后的值。它通过调用Number()内置函数
      --
      ++
    
    
    • 二元运算操作符:+ - * / % **
    第二组:关系操作符

    通过操作符比较两个值的关系:是否相等,大于,小于还是等
    相等不等操作符:== === != !==

    true == false
    

    比较操作符: < > <= >=

    1> 2
    a => b
    

    in操作符 :检查对象的属性
    instanceof操作符

    第三组:逻辑操作符

    通过操作符对两个值进行逻辑的判断
    逻辑与 &&
    逻辑非 !
    逻辑或 ||

    第四组:赋值操作符

    通过操作符为变量赋值

    +=
    -=
    *=
    /=
    %=
    **=

    第五组:其他操作符

    链接操作符:+
    检测数据类型的操作符:typeof
    删除操作符:delete
    逗号操作符:,
    void操作符

    操作符的喜好

    操作符在操作值的时候是对值有要求的,有些操作符喜欢数值,有些操作符来者不拒。

    操作符的优先级

    操作符是有优先级的

    1+ 2 * 3//先乘除后加减
    2*3**2//18 
    
    • 小括号操作符优先级最高
    • 一元操作符优先级第二
    • 逗号操作符优先级最低
    • 赋值操作符优先级倒数第二低
    • 幂操作符的优先级高于乘除取余
    • 乘除取余高于加减
    • 算数运算符优先级高于关系运算符
    • 关系运算符优先级高于逻辑运算符

    操作符的结合性

    操作的结合性指:操作符在操作值的时候的计算方向

    • 左结合:从左向右执行计算
    • 右结合:从右向左执行计算
    //大多数操作符都具有左结合性
    1+2+3
    //少量的操作符具有右结合性:幂 ,赋值运算符,三元运算符
    2**3**2//512右结合
    
    let c = 2//右结合
    a? "hello" : (b ? 1: 0)
    

    2.表达式

    定义:表达式是一个可以求值的js短语。(表达式是有返回值的)
    1.所有的表达式都必须计算出一个值
    2.表达式是可以嵌套的

    表达式分类

    1.字面量表达式:常量表达式 => js中最简单的表达式

    100
    "abc"
    true
    false
    undefined
    null
    

    2.变量表达式:返回的是之前赋值给变量的值

    i //变量表达式
    mm //变量表达式
    let srt //let 是一个关键字,用于声明变量
    

    3.数组定义表达式

    [1,2,3]
    

    4.对象定义表达式

    {
    x = 1,
    y = 2
    }
    

    5.函数定义表达式

    let fn = function(a,b){
    return a ** b
    }
    

    6.数组访问表达式

    arr[0]
    arr[arr.length - 1]
    

    7.属性访问表达式

    let obj = {
    name = "张三"
    age = "18"
    }
    student.name
    

    8.函数调用表达式

    fn()
    fn(2,3)
    

    9.赋值表达式

    a = 100
    a += 100//a = a +100
    a -= 10//a = a -100
    a /= 100//a = a/ 100
    a %= 100//a = a % 100
    a *= 100//a = a*  100
    a **= 100//a = a** 100
    

    10.算数表达式

    1* 1
    1%1
    1**1
    1-1
    1+1
    

    11.关系表达式

    1 > 2//比较表达式
    2 < 1//比较表达式
    unll == undefined//相等表达式
    a != b//不等表达式
    

    12.逻辑表达式

    100 && "hello"
    true || false
    !1
    

    13.求值表达式
    14.其他表达式

    数据类型转换

    • 原始类型
      数值
      字符串
      undefined
      unll
      symbol
    • 对象类型
      数据类型指把任意一种数据类型转换为数值,字符串,布尔值类型

    显示数据类型转换

    ECMAScript为我们做显示数据转换有三个函数

    1.显示转数值

    • 任何一种数据类型都可以转成数值
    • 方法一:Number()

    • 接受任意类型的值
      工作原理:
      1.内置函数
      2.整体转换
      3.接收任意的值
      4.可以转首尾空格和小数点
      5.空都转成0,[] unll ""
      6.NaN : [1,2,3] undefined {}
      语法:
    new Nunber(thing)
    Number(thing)
    

    定义:
    1.Number()作为函数调用时,它将传入的值转为数值
    2.Number()用于构造函数
    语法规则:

    • Number是整体转换,对传入的每一个字符进行检测,只要有一个字符无法转换它就返回NaN
    • Number是js的一个内置的构造函数
    • 调用Number方法的时候,它可以把任意类型的值转换为数值型
      规则:
      1.Number()方法是整体1转换:对传入的每一个字符进行转换
      转换成功:有一个字符无法转换,那么它就返回nan
      转换失败:全部字符通过检测,则返回检测到的数值
      2.字符串:Nunber()方法可以转换小数点
      3.字符串:可以转首尾空格
      4.字符串:Number()方法无法转换字母特殊符号
      5.布尔值:true 转为 1 false 转为0
      6.对象 : 空对象{} 转为nan
      7.null 转为0
      8.undefined 转为nan
      9.空字符串 “” 转为0
    1. 数组 : 空数组[ ]转为0
      11.数组:[100]转为100
      12.数组:[1,2,3]转为nan
           n =true //1
           n =undefined//nan
            n = {}//nan
            n = null // 0
              n = false//0
            n = !true//0
            n = "" //0
            n = []//0
            n = Number(n)
            console.log(n,typeof n)
    

    方法2:parselnt()

    定义:parselnt()函数解析字符串参数并返回指定基数(数学数字系统中的基数)的整数

    • 该方法的对象是字符串
    • 对字符串从左到右逐一检测,遇到非数值(包括小数点)就停止检测,返回检测到的数值,如果没有则返回NaN
      语法:
    parselnt(string)
    parselnt(string,radix)
    
    • 参数1 :字符串
    • 参数2:指定基数
     let v = "100"
                v = "3.14"//3
                v = "10.5px"//10
                v = "10px"//10
                v = "px"//对字符串从左到右逐一检测,遇到非数值就停止检测
                v = {}//nan
                v = true //nan
            v = parseInt(v)
            console.log(v,typeof v)
    

    工作原理:
    先将参数使用内置函数转为字符串,然后对字符串从左到右逐一检测,遇到非数值就停止检测,返回检测的数值,没有检测到返回nan。

    方法3:parseFloat()

    定义:parseFloat()函数解析一个字符串参数并返回一个浮点数

    • 对字符串从左到右逐一检测,遇到非数值(不包括小数点)就停止检测

    2.显示转字符串

    • 任何一种数据类型都可以转成字符串
    • 方法一:String()

    定义:
    1.String()作为函数调用时,它将传入的值转为字符串
    2.String()用于构造函数

    new String(thing)
    String(thing)
    
    let a = 100
    a = String(a)//a
    a = []//""
    a = [100]//100
    a = true//true
    a= -0//0
    a=[1,2,3]//1,2,39
    a= {} //[object object]
    a = {name:"nh"}//[object object]
    console.log(a typeof a)
    

    方法二:值.toString()函数

    值.toString()是所有数据类型的方法(null和undefined除外)

    let a = 100
    a = a.toString()
    console.log(a typeof a)//100 string
    

    3.显示转布尔值

    • Boolean()

    • 任何一种数据类型都可以转成布尔值

    做数据类型转换,请建立2个概念:传入的值 返回的值

    • 可以传入任意类型的值
    • 返回值我们只关注:字符串、数值、布尔值
    • 数据类型转换指把任意一种数据类型转换成为数值、字符串或布尔值类型。

    隐示数据类型转换

    相关文章

      网友评论

          本文标题:js数据转换

          本文链接:https://www.haomeiwen.com/subject/rrbuqdtx.html