您的位置:首页 > Web前端 > JavaScript

JavaScript基础学习02

2017-04-06 14:22 232 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sorakairi/article/details/69257668

—– 什么是表达式

将同类型的数据(如常量,变量,函数等),用运算符号按一定的规则连接起来的,有意义的式子称为表达式。

运算符是一元、二元还是三元,要看它要求有几个数参加运算。
1.”++”运算符,只需要一个数据单元参加运算,如++a,它就是一元运算符。
2.”+”、”-“等运算符,如a+b,要求有两个数据单元参加运算,它就是二元运算符。
3.”?:”运算符要求三个运算单元,如(ab)?c:d,它就是三元运算符。

操作符:

分类 操作符
算数操作符 +、- 、* 、/ 、%(取余)、++、- -
赋值操作符 =(简单赋值)、+=、-=、*=、/=、%=、&=(逻辑与)、I=(逻辑或)、^=(异或)
比较操作符(返回boolean型) <、>、<=、>=、==(值相等)、===(值和数据类型相等)、!=(值不等)、!==(值和数据类型不等)
三元操作符 条件?执行代码1:执行代码2—成立执行代码1,不成立执行代码2
逻辑操作符 &&与、II 或、!非

算数操作符示例:

var num1=10,num2=20;

console.log(num1%num2);     //10

var num3="c";

console.log(num1*num3);     //NaN

var num4="5";

console.log(num1*num4);     //50 浏览器自动做隐式类型转换

var num5=++num1+num2;

console.log(num1);          //11 ++a先自增,再参与运算

console.log(num5);          //31

var num6=num1++-num2;

console.log(num1);          //12 a++ 先参与运算,再自增

console.log(num6);          //-9

x1=20,x2=30,x3=--x1+x2--;

console.log(x1);            //19

console.log(x2);            //29

console.log(x3);            //49  19+30

赋值操作符示例:

var a=10;

var b=20;

var c="2";

var str="hello ";

a+=5;               // a=a+5

b%=4;               // b=b%4;

sora1= b+c;

sora2= b*c;

str+=" world";      //str=str+"world";
//纯数字时是加号,有字符串时是拼接。

console.log(a);     //15

console.log(b);     //0

console.log(sora1); //02  此时b是0+"2"【字符串拼接】

console.log(sora2); //0  此时b是0*2【隐式转换】

console.log(str);   //hello world

比较操作符示例:

var x=10,y="10",m=15;

z1=x==y;                        // 值是否相等

z2=x===y;                       // 值和类型是否相等

console.log(z1);                //true  ==只比较值是否相等

console.log(z2);                //false ===比较值和类型是否相等

n1=y!=m;

n2=y!=x;

n3=y!==x;

console.log(n1);                //true

console.log(n2);                //false

console.log(n3);                //true

console.log(null==undefined);   //true;

console.log(null===undefined);  //false;

三元操作符示例:

var soce=75;
var result=(soce>=60)?"及格":"不及格";
console.log(result);                    //及格

逻辑操作符示例:

&&与(只要一个条件不成立,返回false)

var num1=10,num2=20,num3=30,
str="welcome",
bool=true,
n=null,
m;

console.log(num1<num2 && num2<num3);            //true

console.log(num1<num2 && num2==num3);           //false

console.log(num1<num2 && bool);                 //true

console.log(num2<num3 && num3>num1 && false);   //false

//操作数中有非布尔值的情况:

//注意:""和0和null和undefined隐式类型转换为false,其他为true

//1.如果操作数中隐式类型转换后均为true,则返回最后一个操作数。

//2.如果操作数中存在隐式类型转换后为false,则返回排在靠前的那个操作数。

//3.操作数是null,则返回null

//4.操作数是NaN,则返回NaN

//5.操作数是undefined,则返回undefined

console.log(str && num3);                       //30 第一条

console.log(80 && 55);                          //55 第一条

console.log("hello" && 65 && "abc");            //abc 第一条

console.log(0 && 88);                           //0 第二条

console.log("" && 0 && 30>20);                  //空 第二条

console.log(80 && "" && "abc");                 //空 第二条

console.log(n && num3);
//null  n=null,如果有一个操作数是null,则返回null 第三条

console.log(55 && true && 33*"abc");
//NaN  33*"abc"是NaN,如果有一个操作数是NaN,则返回NaN 第四条

console.log(m && true);
//undefined m是undefined,如果有一个操作数是undefined,则返回undefined 第五条

console.log(80 && 0 && n && "abc");           //0 第二条
console.log(80 && n && 0 && "abc");           //null 第二条
console.log(80 && 0 && 33*"abc" && "abc");    //0 第二条
console.log(80 && 33*"abc" && 0 && "abc");    //NaN 第二条
console.log(80 && 0 && m && "abc");           //0 第二条
console.log(80 && m && 0 && "abc");           //undefined 第二条
console.log(80 && 0 && m && 33*"abc" && n && "abc");//0 第二条

&&或(只要一个条件成立,返回true)

var m;

console.log(55>88 || 33<66);              //true

console.log(55!="55" || 88==="88");       //false

//操作数中有非布尔值的情况:

//注意:""和0和null和undefined隐式类型转换为false,其他为true

//1.如果操作数中存在隐式类型转换后为true,则返回排在靠前的那个操作数。

//2.如果操作数中隐式类型转换后均为false,则返回最后一个操作数。

console.log("hello" || 0);                //hello  第一条

console.log(99 || 0 || "abc");            //99 第一条

console.log("" || 88 || true);            //88 第一条

console.log("" || 0 || "abc");            //abc 第一条

console.log(0 || "" || null);             //null 第二条

console.log(0 || "" || null || "hello");  //hello 第一条

console.log(m || NaN || 99);
//99 m是undefined,NaN也是false 第一条

console.log("" || m);                     //undefined  第二条

console.log(30*"abc" || 55-"def");
//NaN 两个都是NaN,返回后一个 第二条

!非 【无论操作数是什么数据类型,逻辑非都会返回一个布尔值】

console.log(!false);        // true

console.log(!88);           // false

console.log(!0);            // true

console.log(!"red");        // false

console.log(!NaN);          // true

console.log(!null);         // true

console.log(!!"");          // false
//将第一个!得到的返回值true求反即为false

console.log(!!"blue");      // true  同上

如果有问题,请留言,谢谢。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: