js、运算符

一、一元运算符

一元符串:一元运算符只一个参数,就是要操作的对象或者值,是ECMAScript中最简单的运算符

//自加加与自减减运算
var an = 12;
var num = ++an;     //这里就相当于   var num = an + 1;

var an2 = 12;
var num2 = --an2;    //这里就相当于   var num = an - 1;

//当++或者--再后时
// var an = 12;
// var num = ++an;       //这里分两步分析: 第一步:an = an + 1,第二步:var num = an;
// var num = an++;       //这里分两步分析:第一步:var num = an,第二步:an = an+ 1;

//减减同理
二、算术运算符

算术运算符有:加(+),减(-),乘(*),除(/),取模(%);

// 减(-),乘(*),除(/);
var num = 12;
var num1 = 13;
alert(num - num1);

alert( "12"-13 );      //打印-1
alert( "12"-"20" );    //打印-8
alert( "胖胖"-"20" );  //打印NaN
// 总结:当进行减(-),乘(*),除(/) 会先把运算数转换成Number类型,然后再做数学计算,
// Number类型的NaN与任何值做运行,返回的结果都是NaN;

// javascript中的加法运算
var num = 5;
var an = 6;
alert(num + an);

alert( "5" + 6 ); //56;
var str = "5";
var num = 6;
var num2 = str + num;
alert(num2);
alert(typeof num2);   //string
//总结:加号有两个作用
   //1:当两边的运算数类型都为Number类型时,那就是普通的加法运算
   //2:当两边有字符串时,这时会把两边都转换成String类型,然后字符串的拼接

// 被除数÷除数=商

// 取模(%);
var num = 3;    //除数
alert(0%num);   //打印0
alert(1%num);   //打印1
alert(2%num);   //打印2
//总结:当被除数小于除数时,取模值就等于被除数本本身

alert(3%num);  //打印0
alert(4%num);  //打印1
alert(5%num);  //打印2
alert(6%num);  //打印0
alert(7%num);  //打印1
alert(8%num);  //打印2
//总结:当被除数大于除数时,取模值就取余
三、关系运算符
//关系运算符有:>,<,>=,<=;
var an = 12,num = 13;
alert(an > num);   //false
alert(an < num);   //true


var str = "a";
var str1 = "b";
alert(str > str1);  //打印false   这里比较的是Unicode编码;
alert(str1 > str);
alert("a".charCodeAt());   //打印97   a的Unicode编码是97
alert("b".charCodeAt());   //打印98   b的Unicode编码是98
alert("z".charCodeAt());   //打印122  z的Unicode编码是122
//[a-z] --> [97-122]

var str = "a";
var str1 = "B";
alert(str > str1);  //打印true;
alert("A".charCodeAt());   //打印65
alert("B".charCodeAt());   //打印65
alert("Z".charCodeAt());   //打印90
// [A-Z] --> [65--90]

var str = "aB";
var str1 = "ab";
alert(str > str1);//false   会挨个字符做比较,直到有结果为止
四、等性运算符
// 等性运算符:等于(==),不等于(!=),全等于(===),非全等于(!==)
alert(12 == 12);   //打印true
alert(12 != 12);     //打印false

var str = "12";
var str1 = 12;
alert(str == str1);    //打印true  因为当其中有一个运算数是字符串时,另一个是数字,就会把字符串转换成Number类型,再比较


var str = "胖胖";
var num = 12;
alert(str == num);     //打印false str做类型转换成NaN,NaN与它自己都不相等,与其他比较更不相等咯

var str = "12";
var str1 = 12;
alert(str === str1);    //打印false  因为当全等于时,两边不会做数据类型的转换,
alert(str !== str1);    //打印true
五、三目运算符
    var an = 6;
    if(an > 5){
        alert("an大于5");
    }else{
        alert("an小于5");
    }

    // 可以用三目运算符来写
    var an = 5;
    var str = an>5?"大于":"小于或者等于";
    alert(str);
六、赋值运算符
//赋值运算符;
  var an = 10;
  alert(an-=10); //打印0   //an-=10  -->  an = an - 10;
  alert(an+=10); //打印20
  alert(an*=10); //打印100
  alert(an/=10); //打印1
  alert(an%=10); //打印0
七、逻辑运算符

逻辑运算符:逻辑与(&&),逻辑或(||),逻辑非(!)

//逻辑与(&&):两边必须同时为真才为真,不然就为假
var an = (5>10)&&(10>5);
alert(an);//打印false

// 1:如果两个运算数都是对象,就会返回后面那个对象
var bool = new Object("aa") && new Object("bb");
alert(bool);//打印bb

// 2:如果某一个运算数是null另一个是一个对象, 返回null;
var bool = new Object("aa") && null;
var bool = null && new Object("aa");
alert(bool);//打印null

// 3:如果某一个运算数是undefined另一个是一个对象,返回undefined;
var bool = new Object("aa") && undefined;
var bool = undefined && new Object("aa");
alert(bool);//打印undefined


var bool = true && a;    //报错,因为a没有定义过
var bool = false && a;   //这里不报错,因为第一个就是false,逻辑与就没有必要去执行后面的代码
alert(bool);
// 逻辑或(||)  只要有一边为真就为真,两边全为假才为假;
var an = (5>10)||(10>5);
alert(an);//true


// 1:如果两个运算数都是对象,就会返回前面那个对象
var bool = new Object("aa") || new Object("bb");
alert(bool);//打印aa
alert(typeof bool);//打印object


// 2:如果某一个运算数是null另一个是一个对象;返回对象
var bool = new Object("aa") || null;
var bool = null || new Object("aa");
alert(bool);//打印aa



// 3:如果某一个运算数是undefined另一个是一个对象 ,返回对象;
var bool = new Object("aa") || undefined;
var bool = undefined || new Object("aa");
alert(bool);//打印aa



var bool = true || a;   //逻辑或,当第一个运算数就为true时,就是直接返回true,不会再执行下面的代码;
var bool = false || a;  //报错;
alert(bool);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值