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 同上
如果有问题,请留言,谢谢。
阅读更多相关文章推荐
- 【JavaScript】02.基础语法学习
- JavaScript核心基础知识学习一
- iOS学习笔记之-C语言基础02(关键字、标识符、注释、数据类型)
- 【JavaScript 学习--02】--排序问题(正序和逆序)
- javascript学习笔记——js基础
- java基础学习02(简单的java程序)
- 慕课网javascript基础学习笔记
- 每天一篇javascript学习小结(基础知识)
- JavaScript基础学习之-自定义对象(1)
- javascript学习一: 基础语法
- JavaScript基础学习之-JavaScript权威指南--3.1数字
- JavaScript学习总结(1)——JavaScript基础
- JavaScript基础学习笔记(一)——JavaScript简介、 如何实现JavaScript、把 JavaScript 放置到何处、JavaScript语句
- java基础学习05(面向对象基础02)
- java学习02-java基础知识、基本数据类型、运算符
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- JavaScript学习笔记(一)——JS基础知识介绍
- JavaScript基础学习<四>基本数据和引用类型
- javascript基础学习三:原型继承
- JavaScript DOM编程基础精华02(window对象的属性,事件中的this,动态创建DOM,innerText和innerHTML)