Javascript运算符
1.算术运算符
数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
1.+:求和
2.-:求差
3.*:求积
4./:求商
5.%:取模(取余数开发中经常作为某个数字是否被整除
6.JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。
7.乘、除、取余优先级相同
8.加、减优先级相同
9.乘、除、取余优先级大于加、减
10使用 () 可以提升优先级
11.总结: 先乘除后加减,有括号先算括号里面的~~~
<script>
let num1 = 10 ;
let num2 = 20;
//加法运算
console.log(num1 + num2 ); //30
//减法运算
console.log(num2 - num1 ); //10
//乘法运算
console.log(num1 * num2); //200
//除法运算
console.log(num2 / num1 ); //2
//取余
console.log( 20 % 3 ); //取余常用判断整数是否被整除
//如果运算中存在括号,那么先算括号再到乘除 然后加减
console.log((20 + 10) * 2 - 8); //52
</script>
2.赋值运算符
对变量进行赋值的运算符,赋值运算符,是将右边的值赋予给左边,常见的赋值运算符有
1.+=
2.-=
3.*=
4./=
5.%=
<script>
//赋值运算符 是将右边的值赋予给左边
//常见的赋值运算符有 =
let num = 100;
//假如我们想要num变量加1 之前的做法是
num = num + 1 ;
console.log(num); //101
//现在我们可以用赋值运算符来简化
num += 1;
console.log(num); //102
//除此之外还可以-= *= /= %= 用法和 += 类似
console.log(num /= 2); //51
console.log(num *= 2);
</script>
3.一元运算符
JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符,一元运算符有正负号
<script>
let num = 1;
//之前我们要变量num 加1 可以用 num += 1 现在有一元运算符更加简化
//第一种前置递增
++num
console.log(num); // 2
//第二种 后置递增
num++
console.log(num); //2
//如果两者单独使用没什么区别 ,但是参加运算时会有先后顺序
let num2 = 1
console.log(++num2 + 1); //3 num先自身加1 再参加运算
console.log(num2); //2
let num3 = 1 ;
console.log(num3++ + 1); //2 num先运算完 再自身加一
console.log(num3); //2
</script>
4.比较运算符
主要是比较两个变量的大小,相等
1.> 大于 左边是否大于右边数据
2.<小于 左边是否小于右边数据
3.>= 左边是否大于或者等于右边
4.<= 左边是否小于或者等于右边
5.== 左右两边是否相等 将两边数据转换数值再比较
6.===左右两边的数据是否数值 类型都相等
7.!=左右两边是否不相等
8.!==左右两边是否不相等 包括数据类型
9.比较结果为Boolean,即只会得到true 和false
<script>
// 比较后的结果 其实是一个 bool 类型 true , false
console.log(3 > 10); // 打印什么结果 false
console.log(3 > 1); // true
console.log(3 < 10); // true
console.log(3 < 3); // false
console.log(3 <= 3); // 小于或者等于 3 true
// 判断是否相等 要用 两个 "==" 号
console.log(3 == 2); // false
// let num = 4;
// num = 5; // 只写一个= 代表赋值
// console.log(num == 5); // 两个等于号才是判断 不包括数据类型
// 判断 3 不等于 5
// console.log(3!=5); // != 不等于 true
// 拿数字和字符串比较
console.log(3 == '3'); // true 因为两个 == 只会判断值 而不会判断类型
console.log(3 === '3'); // flase 3个等于号 既要判断类型 也要判断值
console.log(3 === 3); // true
console.log(3 != 3); // false
console.log(3 != '3'); // false
console.log(3 !== '3'); // true
// 比较 一般都是对数字做比较
// 对于字符串做比较 更多是判断两者是否相等
// console.log('A' === 'B');
// 如果拿字符串去 大小的比较,判断的标准是
// 先把字符串 拿去做 转数字
// 转完了数字之后, 才根据数字做大小比较!
console.log('A' > 'B'); // 65 > 66
// NaN = A || NaN = B
console.log(NaN === NaN); // false 不能以为 两者代码一样就相等 (不是一个数字 )
// 运算符处理小数 有问题 度的问题!!
console.log(0.4 + 0.2 === 0.6); false
// 类型转换
// console.log(4 > '3');
console.log(4 > Number('3'));
</script>
5.逻辑运算符
<script>
//假如有个数据要大于5 并且要小于10
let num = 6 ;
console.log(num > 5 && num < 10); //true 一假则假
//假如我有个钱包 里面有10元 或者 有 3 元 就去买东西
let num2 = 3 ;
console.log(num2 == 4 || num2 == 3); //true 一真则真
//逻辑运算符 ! 取反
let age =true;
console.log(!age); //false
</script>
6.短路运算符
短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
<script>
// 一假则假 && 左边为false 右边就不再去执行
console.log(2 > 10 && 1 < 3 && 3 > 1 && 9 > 5 && 5 < 10 && 8 > 2);
// 常见的写法
// 如果今天下雨 那我就去吃大餐
// 不下雨 不去吃海鲜了
let rain = false;
// 左边成立了 右边才会去执行
rain && console.log('下雨 去吃海鲜');
// 逻辑或 一真则真
// 只要 || 左边 成立了为true,右边就不再去执行
console.log(100 > 3 || 2 > 6 || 9 > 10 || 10 > 11 || 13 > 20);
// 常用的技巧
// 如果下雨,那么我就不出去
let rain1 = false;
rain1 || console.log('不出去');
// 两个短路运算 逻辑或 和 逻辑与
// 逻辑与来说 满足了 就去执行
// 逻辑或来说 不满足了 就去执行
// 逻辑运算的最终结果
// let result = 1 > 0 && 7 > 10; // false
// 那段代码是最后执行即可
// let result = 10 > 0 && 30;
// let result = 20 > 0 && false && 30;
console.log(result); //false
// undefined 转换成 布尔类型 是个false
// 以下的值转成 布尔类型后 false
// undefined null 0 空字符串 false NaN
console.log( Boolean(undefined) ); //false
console.log( Boolean(null) ); //false
console.log( Boolean(0) ); //false
console.log( Boolean("") ); //false
console.log( Boolean(false) ); //false
console.log( Boolean(NaN) ); //false
console.log( Boolean('') ); //false
</script>
Javascript表达式和语句
1.表达式
表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果
<script>
num = 7
num ++
</script>
2.语句
js 整句或命令,js 语句是以分号结束(可以省略)比如: if语句 for 循环语句
区别:表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)
<script>
alert('你好啊')
</script>
</body>
3.程序三大流程控制语句
1.顺序结构语句
上往下执行语句,这种叫顺序结构
2.分支结构语句
根据条件选择执行代码,这种就叫分支结构
3.循环结构语句
段代码被重复执行,就叫循环结构
4.分支语句
1.if单分支语句
语法
if (条件表达式) {
执行表达式(条件表达式为true执行)
}
//获取用户信息
let num = +prompt('请输入你的分数')
//条件表达式 成立就执行 否则不执行
if (num > 700 ) {
alert('恭喜你分数700')
}
</script>
2.if 双分支语句
语法
if (条件表达式) {
执行表达式(条件表达式为true执行)
} else {
执行表达式2(条件表达式为false执行)
}
<script>
let num = +prompt('请输入你的分数')
if (num > 700 ) {
alert('恭喜你分数大于700')
} else {
alert('恭喜你分数低于700')
}
</script>
3.多分支语句
语法
if (条件表达式) {
执行表达式(条件表达式为true执行)
} else if (条件表达式2){
执行表达式2(条件表达式2为true执行)
} else {
执行表达式3( 所有条件表达式为false时执行)
}
<script>
let num = +prompt('请输入星期数')
if ( num == 1) {
alert('吃煲仔饭 ')
} else if (num == 2) {
alert('吃白饭 ')
} else if (num == 3) {
alert('吃汉堡 ')
} else if (num == 4) {
alert('吃鱼 ')
} else if (num == 5) {
alert('吃虾 ')
} else if (num == 6) {
alert('吃鸡')
} else {
alert('没得吃')
}
</script>
4.用分支语句制作简单计算器
<script>
let num = +prompt('请输入第一个数字');
let num1 = +prompt('请输入第二个数字');
let ufunc = prompt('请输入+ / * - 任何一个');
if (ufunc == '+'){
sum = num + num1
} else if (ufunc == '-' ) {
sum = num - num1
} else if (ufunc == '/' ) {
sum = num / num1
} else {
sum = num * num1
}
// sum = num ufunc num1;
alert(`计算结果为${sum}`);
</script>
</body>
5.三元表达式
if 双分支 更简单的写法,有时候也叫做三元表达式, 符号:? 与 : 配合使用
语法结构 条件表达式? 执行语句1 (true执行):执行语句2(false执行)
<script>
// 三元表达式
// num1 > num2 ? console.log(num1) : console.log(num2);
let num1 = 10;
let num2 = 99;
let num3; // 就要等于 num1 和 num2 中 大的值
num3 = ( (num1 > num2) ? num1 : num2); //常用于一个数值
console.log(num3);
</script>
</body>