JavaScrip 运算

作者: 叫我老村长 | 来源:发表于2018-07-18 00:03 被阅读2次

    1.运算符

    var a =123;
    var result = typeof a;
    console.log(result)
    console.log(typeof result) string
    result = true +1 result=2
    非num 先转为number 然后运算。
    result = null +1 2
    result = nan+1 nan 任何数字和nan运算都是nan
    result = ‘123’ + ‘456’ 123456
    字符串汉字 “” 不能分行 分行会报错。
    解决办法:
    ‘都是范德萨’+
    ‘sfdsfds’+
    ‘是梵蒂冈’
    result = 123+‘1’ 1231 任何值和字符串运算 先转为字符串 在拼接
    result = true+‘hello’ truehello


    var a =123;
    a=a+''
    console.log(a)
    console.log(typeof a) string 123


    c=123
    console.log('c='+c) c=123


    c=1+2+'3' 33
    console.log('c='+c)


    c='1'+2+3 123
    console.log('c='+c) 123


    c=100 - '1'
    console.log('c='+c) 99
    除了加法 都会转为number 然后在运算


    c=2 * '8' 16
    c=2 * null 0
    c=2 * 'a' nan
    c=2 * undfined nan
    console.log('c='+c)


    var d ='123'
    d=number(d)
    d =d - 0 变为num -0 *1 /1
    console.log(typeof d)
    console.log(d)

    一元运算符


    • 正号

    • 负号

    var a =123;
    a =+123
    console.log('a='+a) 123


    var a =123;
    a =-123


    a =true
    a =-a -1


    a='11'
    a = +a; -0 *1比 简单 直接变数值型 -11


    console.log('a='+a) -123

    自增自减


    ++


    var a =1;
    a++; 2
    ++a; 2
    console.log(a++) 先赋值 在自增 所以 a=1赋值这个地方 打印 再自增
    console.log('a='+a) 自增以后然后,结果2
    console.log(++a) 2
    console.log('a='+a) 2


    d=20;
    var result =d++ + ++d +d 64
    进去先赋值20 出来21 + 22 +22


    d=20;
    d =d ++ 直接进行赋值 20 没有加1


    var number=10;
    null --; 9
    console.log('number='+number) ;


    n 10
    n1 11
    n 12
    n1 12
    n 20
    n2 19
    n 18
    n2 18

    逻辑运算


    ! 非

    && 与
    || 或
    var a= true;
    a = !a;
    console.log(a) ; false


    var a= 1; 先变true
    a = !a;
    console.log(a) ; false
    console.log(typeof a) boolean


    装换bool值
    var a= 1;
    a = !!a;
    console.log(a) 变为true


    var result = true && true true
    var result = true && false false
    。。。。。
    var result = false && false false 第一个为flase就不往下看了。 false


    var result =false || false false
    var result =true|| false true
    var result =false || true true
    var result =true || true true 第一个为true就不往下看了 true


    var a= 1 && 2 先转boolean
    console.log(a) ; 遇到1 true 在 遇到2 true 返回2


    ar result =1 &&2 2

    var result =0&&1 0
    遇到false就停


    var result =2 || 1 2 第一个为true就不往下看了 true
    var result =nan || 1 nan false 1
    var result ='' || 1 '' false 1

    赋值运算符


    =
    +=
    -=
    *=
    %=

    关系运算符


    var result =5>10; false

    <
    <=
    var result =1>true; true和数字比较变 1 false
    var result =1>‘0’; 1>0
    var result =5>null; 5>0
    var result =10>'hello'; 10 > nan 和nan比较永远 false


    var result =‘5’<‘10’; 二面都是字符串 比较字符串的unnicode 的编码
    var result =‘ab’<‘a’拿第一位比 第一位相等 继续比第二位 谁大水就大。
    用来对英文的排序。


    scriper
    unicode
    console.log('\2685')
    16进制。


    body
    里面用十进制
    &#9861

    相等运算符


    ==
    console.log(‘1’=1) true ‘1’默认转为number
    console.log(true=1) true


    console.log(null==0) false
    console.log(null == undfined) true null衍生过来的
    console.log(nan='1') false nan不等于一切包括自己


    var b=nan
    console.log(b == nan) 无法判断 b=nan
    console.log(isnan(b)) true


    console.log('1' != 1)false
    console.log('1' === 1)false 类型不行直接否
    console.log(null === undfined) false


    console.log(‘1’!== 1) true 不全等

    条件运算符 三元运算符 三木运算符


    条件表达式 ? 语句1 :语句2; true 1 false2
    获取a,b最大值
    var max = a>b? a:b ; max放返回值
    获取a,b,c最大值
    max = max>c? max:c ;
    简写:
    var max = a>b?(a>c?a:c):(b>c?b:c);

    运算符优先级


    && > ||

    代码块


    {}
    代码块包着的一起执行了。分组了

    相关文章

      网友评论

        本文标题:JavaScrip 运算

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