第一节 算术运算
通过运算操作数据(事物)的行为,运算表示行为。
例:蜗牛爬井,一口井10米,蜗牛白天爬3米,晚上滑2米,蜗牛几天爬出?
//当前位置在井底 ,默认是0var position = 0;//白天爬3米position = position + 3;//晚上滑2米position = position - 2;alert(position); //1 2 3 4 ....//加赋值1 表示爬行一米position = position + 1;position++;console.log("往上爬了"+ position + "步");
算术运算符
总结:除了+号可以做字符串连接,其它运算符基本都会做数据类型转换
运算优先级
1、乘法优先级高于加法
var a = 2+3*5; //17
2、2.5圆括号的优先级最后
var b = (2+3)/(5-3);
第二节 强制转换
字符串转数字parseInt() parseFloat() isNaN()
定义函数function 函数名(){
//方法体 - 函数体
}
点击事件,当点击时,调用函数体
οnclick="函数名()"
例:一个字符串12
parseInt() //取整数
var str = "12";alert(parseInt(str) + 1); //13var str = "12px";alert(parseInt(str)); //12var str= "ab 12 px";alert(parseInt(str)); //NaN
parseFloat();
保留小数
var str = "12.5";alert(parseFloat(str));//12.5
isNaN 判断是不是 非数字,非数字返回true
注意坑:isNaN()如果判断数字型字符串会有隐式转换,返回false
数字转为字符串toString()
var num = 123;var str = num.toString();alert(typeof str);//string 转字符串
第三节 赋值运算
复合的赋值运算符 += -= *= /= %=
//编程思想var a = 3;a = a + 1;//第一步:读取a的值//第二步:运算a + 1//第三步:把运算结果写回avar x = 10;x = x + 2; //读取x的值,在运算x+2,运算结果写回xvar x - = 2; //x = x - 2; 注意顺序x+=2; //x = x+2x-=2;x*=2;x/=2;x%=2;
表达式
1、包含赋值运算的语句叫表达式
2、单独的运算不叫表达
第四节 关系运算
关系运算:> < <= >= != == === ==和=== !=和!==
var a = 2;var b = "2";var c = 2;console.log(a == c); //true 类型相同,值相同console.log(a === c ); //true 类型相同,值相同console.log(a !== c );//false a与c类型相同,值也相同,非运算肯定是falseconsole.log(a == b); //true 把b转换为数字,检查是否相等console.log(a != b); //false ==的非运算console.log(a === b); //false 类型不同,直接返回falseconsole.log(a !== b ); //true
总结:==和 != 先尝试转换类型,再做值比较,最后返回值比较结果;而===和!== 只有在相同类型下,才会比较里面的值。
字符串比较
'2' == '2'; //true两个操作数都是数字字符串,先转换成数字,再进行比较'a' != 'b'; //true 两个操作数是字母字符串,转成ascii码,再比较'abc' < 'aad'; //false 依次比较ascii码13 > 'abc'; //false "abc"会转成NaN
获取unicode字符编码
var str = "abc";alert(str.charCodeAt(0)); //97
返回指定位置的字符编码charAt(1); //返回字符串子串
小结:“=”、“==”、“===”有什么区别?
= 是赋值符号,是对变量所代表的内存的写的操作;
== 忽略数据类型的判断 是否相等
=== 数值和数据类型都要相等才判断为相等
第五节 逻辑运算
满足两个条件
var username = "果果";var password = "abc";//使用 逻辑与 && 连接两个表达式alert(username==="果果" && password==="abc"); //true
逻辑与&&
逻辑与&& (and) 并且的意思:若干条件中,只有都是true时,条件才能为真
alert(true && true); //truealert(true && false); //falsealert(false && (3>4)); //falsealert(false && false); //false
逻辑或||
逻辑或 || ,若干条件中,只有有一个满足,返回true
alert(true || true); //truealert(false || true); //truealet(true || false); //truealert(false || (3==4)); //false
逻辑非!
逻辑非!取反 !ture的结果为false,!false的结果为true
var n1 = !true; //falsevar n2 = !false; //truevar n3 = !!true; //true
复合逻辑表达式
中文:user等于小星 并且 年龄大于等于18 或者 地址是中国 并且 密码是 123;
(user=="小星") && (age>=18 || addr=="中国")&&(pwd==123);
![f08774539fab1aa1b5247331802de805.png](https://img-blog.csdnimg.cn/img_convert/f08774539fab1aa1b5247331802de805.png)
javascript
第六节 三元运算
根据不同的条件去处理不同的结果
条件运算符?:
-5 正 5 一元运算
3+5 二元运算
三元运算符:(比较表达式)?结果1:结果2
输出最大值
var num1 = 3;var num2 = 5;var max = num1>num2 ? num1 : num2;console.log(max);
第七节 隐式转换
+号在不同情况下的区别
console.log(3 + 5 + "hello"); //8 helloconsole.log("hello" + 3 + 5); // hello 35