数据类型转换

转换为String

 强制类型转换
  1.  toString()方法:

             var  a=10;
             a=a.toString();

如果调用undefined和null的toString()会报错

    2.String()函数

    var a=10;
    a=String(a)

对于具有toString()方法类型,String()也会调用它的toSting()来进行转换
对于null 直接将其 转换为 "null"
对于undefined 直接将其 转换为 "undefined"

 隐式类型转换
  通过为任意类型加上一个空串的形式将其转换为字符串
    var a=10;
    a=a+"";

转换为Number

 强制类型转换
 1.Number()函数

   var num="10";
   num=Number(num);

转换的情况:

  字符串: 如果是一个合法的数字  则直接转换成对应的数字
         如果不是一个合法的数字 则转换成NaN
         如果是空字符串和纯空格的字符串 则转换为0
         
         
  布尔值: true转换成1   false变成0
   
  null:null直接转换为0
  
  undefined:undefined转换为NaN    
  
  
  2.parseInt()函数    
   将一个字符串中的有效整数位提取出来
   
  3. parseFloat()函数
   将一个字符串中的有效小数提取出来
   
   
   
  隐式类型转换 
  使用一元运算符的"+"将任意的数据类型转换为Number

var a="10";
a=+a;

转换为Boolean

 强制类型转换
 调用Boolean()函数
var a=1;
a=Boolean(a);

转换的情况:

  String  除了空字符串  其余都是true
  Number  除了0和NaN   其余都是true
  null和undefined都为false

隐式类型转换
可以通过对任意类型的数据取反两次 将其转换为布尔值

   var a=10;
   a=!!a;

运算符(操作符)

通过运算符可以一个或多值进行运算

算数运算符

        +
        -
        *
        /
        %
       规则和数学中的规则一致
       
       

一元运算符

 +(正号) -(负号)  ++   --  !    typeof  instanceof delete

二元运算符

 +(加号) -(减号) /  %  >  <   >=  <=  ==  !=  === !==   &&  ||   +=    -=  /=    %=  
 

三元运算符

?:    

加法运算符
如果两个操作数都是数字的话 进行加法计算
console.log(1+1)   //2
如果操作数中出现字符串 进行字符串拼接
console.log(1+'个苹果')  //1个苹果

除了加法运算符  其他算数运算符都将字符串类型自动转换成number类型 再进行计算
console.log('2'-'2')   //0
求余运算符
计算两个数整除后的余数   求余的结果是正数还是负数,与第一个操作数的正负有关
console.log(5%3)   //2
console.log(-5%3)  //-2
console.log(5%-3)   //2
console.log(-5%-3)  //-2
++
    自增
     自增可以使变量在原来的基础自增1
     自增分成前++(++a) 和 后++(a++)
     无论是++a 还是 a++都会使原变量立即自增1
     不同的是++a 和 a++的值不同
     ++a是变量自增后的值,新值
     a++是变量自增前的值,原值    
--
   自减
    自减可以使变量在原来的基础自减1
    自减分成前--(--a) 和 后--(a--)
    无论是--a 还是 a--都会使原变量立即自减1
    不同的是--a 和 a--的值不同
    --a是变量自减后的值,新值
    a--是变量自减前的值,原值
相等与不等

    ==与!=   只比较操作数的值  不比较类型

   consolel.log(10 =='10')   //true

   console.log(undefined == null)   //true   都表示空  所以输出为true
全等与全不等

    ===和!== 既比值 又比较类型
    console.log(10 ==='10')    //false 
    console.log(10 !=='10')    //true
isNaN()函数

    用于判断参数是否是非数字值  多用于检测转换后的结果是否为合法的数字值
    注:NaN与任何值进行比较 都是false   不能使用 == 或者 === 运算符判断  只能用isNaN()函数

   console.log(isNaN(parseInt('123abc')))    //true
   console.log(isNaN('123.456abc'))    //true

逻辑运算符

! 逻辑非

        可以对一个布尔值进行取反操作
        如果对一个非布尔值进行逻辑非运算,会先将其转换为布尔值,然后再取反
        利用这个特点,可以为指定的值取两次反,来将其转换为布尔值。

&& 逻辑与

        可以对符号两侧的值做与运算
        如果对非布尔值做与运算,会将其转换为布尔值然后再运算,
        最终会返回原值
        如果第一个值是false,则直接返回第一个值
        如果第一个值是true,则返回第二个值
        js中的与运算是短路的与,如果第一个值是false,则不看第二个值    

|| 逻辑或

        可以对符号两侧的值做或运算
        如果对非布尔值做或运算,会将其转换为布尔值然后再运算,
        最终会返回原值
        如果第一个值是true,则直接返回第一个值
        如果第一个值是false,则返回第二个值
        js中的或运算是短路的或,如果第一个值是true,则不看第二个值


赋值运算符

    =
     =  将符号右侧的值赋值给符号左侧的变量
    +=
         a += 5 相当于 a = a+5
    -=    同+
    *=    同+
    /=    同+
    %=    同+

条件运算符(三元运算符)

    ?:
     语法:
        条件表达式?语句1:语句2
        
    -执行流程:
            三目运算符在执行时,会先对条件表达式进行求值判断,
            如果判断结果为true,则执行语句1,并将执行结果返回
            如果判断结果为false,则执行语句2,并将执行结果返回
            
            
            

    var salary =45000;
     
    var result=salary  >30000 ? console.log('中产阶级')   : console.log(' 小康');

条件运算符嵌套


    条件运算符中 每个表达式可以为另一个条件表达式  为条件运算符嵌套
    
    var age=24;
    var result=age >=60 ? console.log('老年') :(age >=30 ? console.log('中年'):(age >18 ?console.log('成年'):console.log('未成年')) )
    
    代码执行顺序:
         age>=60  不符合条件继续执行 age >=30 不符合条件继续执行 age >18 满足条件 

RoOK1E
0 声望4 粉丝