js运算符

    技术2022-07-21  66

    1. 基本运算符

    ++

    var a = 10; a = a + 1; document.write(a);//结果 11

    a = a + 1;可以写成 a ++形式“,”++”即自身加一,再赋值给自身。a++是 a=a+1 的简化形式

    ++a与a++的区别

    var a = 1; document.write(a++); document.write(a); //答案 1;2

    var a = 1; document.write(++a); document.write(a); //答案 2;2

    var a =1; var b = a ++ +1; document.write(b); //答案 2

    a 写在后面就后运行,先计算 a+1=2 赋值给 b 后再++ 例

    var a = 1; var b= ++a + 1; document.write(a); document.write(b); //答案 2;3

    var a =10; document.write(++a ); document.write(a); //答案 11;11

    document.write(++a );程序先执行a=a+1,再打印a=a+1后的结果 例

    var a =1; document.write(a ++); document.write(a); //答案 1;2

    程序先执行语句(document.write(a)),再++,所以第一次打印的还是 a,第二次打印 a++后的值 例

    var a =10var b=++a -1+a++; document.write(b + “ ” + a)//答案 21 12

    程序先执行++a,这个时候 a=11,再执行减1,再加 a(11),所以b 就是 21,最后++,所以a 就是 12 赋值的顺序自右向左,计算的顺序自左向右(按数学来)

    var a =1var b = a ++ + 1; document.write(a); document.write(b)//答案 2,2

    程序先执行b=a+1,然后执行a++

    var a =1var b = ++a + 1; document.write(a); document.write(b)//答案 2,3

    程序先执行++a,然后执行b=a+1,所以b=3 例

    var i = 1; var a = i++; //答案 a = 1; 此时 i 先将值 1 赋给 a,然后自己+1,i=2; var b = ++i; //答案 b = 3;此时 i 先自己+1 为 3.再给 b 赋值,b=3;

    - -

    “- -”,是自身减一,在赋值给自身

    var a = 1; var b = a-- + -- a; document.write(b); //答案 0

    先执行–a;此时 a 变成 0,然后第一个 a 也变成 0,那么 b = 0-- + --0 例

    var a = 1; var b = --a + --a; document.write(b); //答案-1

    +=

    例 var a =10;a ++;a ++;a ++;加十个 简化写法:a +=10;也是 a = a+10; 例

    var a =10; a += 10 + 1; //答案 21

    a+=10等于a = a + 10; a++也可以写成 a +=1

    /=

    var a=10; a/=2; //答案 5,除二赋给自身

    *=

    var a =10; a *=2; //答案:20 乘二赋给自身

    %=

    例 `

    var a=10; a%=2; //答案:0, 10 能整除 2,余数是 0,取余,余数赋给自身。

    `var a=3; a%=4; //答案:3,3 除以 4,余数为 3,余数赋给自身

    var a=0; a%=4; //答案:0,0 除以 4,余数为 0,余数赋给自身。`

    var a = 1; a% =10; //答案:1,1 除以 10,余数为 1,余数赋给自身。`

    练习

    1.var a =123; var b =234;经过计算交换 a,b 的值 方法一普通方法:

    var a=123; var b=234; var c = a; a = b; b = c; document.write(a ,b);

    方法二

    var a=123; var b=234; a = a + b; b = a – b; a = a –b; document.write(a ,b);

    2

    var a =(10 * 34 / 2 + 1)%2,b=3; b %= a + 3; document.write(a++); document.wtite(<br>); document.write(--b);

    document.write(a++);是 1(先打出 1 再++) document.write(–b);是 2 b % =a + 3,3 的模等于 4,除不开再赋值给 b,b 还是 3

    二、比较运算符

    1、“>”,”<”,”==”,“>=”,“<=”,”!=”比较结果为 boolean 值true 或 false 字符串的比较,比的是 ASCII 码(七位二进制 0000000) >, < 例

    var a = "a">"b"; document.write(a); //答案是 false

    var a = 1 > 2; document.write(a); //答案是 false

    var a = 1 < 2; document.write(a); //答案是 true

    var a = "1">"8"; document.write(a); //答案是 false

    var a = "10">"8"; document.write(a); //答案 false,不是十和八比,是字符串一零和八比,先用开头的一和八比,比不过就不看第二位了;一样的就拿零和八比

    var a = 123; document.write(a);

    运算结果为真实的值

    = =,等不等于

    `var a = 1 == 2;` document.write(a); //答案是false,因为 1 肯定不等于 2

    `var a = NaN == NaN;` document.write(a); //答案是 false,NaN 不等于任何东西,包括他自己

    var a = undefined == underfined; document.write(a); //答案是 true

    var a = infinity == infinity; document.write(a); //答案是 true

    非数 NaN 是不等于自己的,NaN 得不出数,但它是数字类型

    >=,<=

    !=是否不等于,非等 比较结果为 boolean 值:true 和 false

    逻辑运算符:“&&”,“||”,“!“运算结果为真实的值

    “&&”与运算符

    两个表达式:先看第一个表达式转换成布尔值的结果是否为真,如果结果为真,那么它会直接返回该表达式的值了,如果第一位布尔值为 false,不看后面的,返回第一个表达式的值就可以了 例

    var a = 1 && 2; document.write(a);//答案 2,

    如果第一位 1 为真,结果就为第二位的值 2 例

    var a = 1 && 2 + 2; document.write(a);//答案 4

    如果 1 为真,结果就为 4 例

    var a = 0 && 2 + 2; document.write(a);//答案 0

    var a = 1 && 1 && 8; document.write(a); //答案 8,先看第一个是否为真,为真再看第二个,中途如果遇到 false,那就返回 false 的值

    var a =1 + 1 && 11; document.write(a); //答案 0

    如果是三个或多个表达式,会先看第一个表达式是否为真,如果为真,就看第二个表达式,如果第二个也为真,就看第三个表达式(如果为真就往后看,一旦遇到假就返回到假的值),如果第三个是最后一个表达式,那就直接返回第三个的结果,如果第一个是假,就返回第一个值,当是真的时候就往后走,一旦遇到假,就返回 &&与运算符是有中断作用的,当短路语句使用(如果。。那么。。) 例 var data = …; //执行一个语句,会用到 data data&&执行一个语句全用到 data 例 data && function(data);

    &与运算

    var num = 1 & 2; document.write(num); //答案 0

    var num = 1 & 1; document.write(num); //答案 1

    var num = 1 & 3; document.write(num); //答案 1

    运算规则:转化成二进制数,上下一与,不同为 0,相同为 1

    “||”或运算符

    var num = 1 || 3; document.write(num);//答案 1

    var num = 0 || 3; document.write(num)//答案 3

    var num = 0 || false; document.write(num) //答案是 false

    运算规则看第一个表达式是否为真,如果为真,则返回第一个值,碰到真就返回。如果第一个表达式是假,就看第二个表达式,如果第二个是最后一个,就返回第二个的值

    “!“非运算符,否的意思。

    先转成布尔值,再取反

    var a = ! 123; document.write(a); //答案 false。123 的布尔值是 true,取反是 false

    var a = ! “”; document.write(a); //答案 true。空串””布尔值是 false,取反是 true

    var a = ! !“”; document.write(a); //答案 false,取反后,再反过来,结果不变

    var a = true;a =!a; document.write(a) //答案 false,自身取反,再赋值给自身

    !=非等于是表达他们到底等不等的

    被认定为 false 的值:

    转换为布尔值会被认定为 false 的值 undefined,null,NaN, “”(空串), 0, false

    Processed: 0.013, SQL: 9