1.运算符
(5)赋值运算符
= += -= *= /= %= …
赋值 运算赋值:先执行运算,再执行赋值
//赋值
var a = 1;
a = 3;
//在原来的基础之上加1
//a++;
//a = a + 1;
//运算赋值,先执行运算再执行赋值
a += 1;
//console.log(a);
练习:声明变量保存商品的价格,让该商品在原来的基础之上打九折,最后打印价格。
var price = 1000;
//在原来基础之上乘以0.9
price *= 0.9;
console.log(price);
(6)三目运算符
一目运算符:由一个运算符连接的一个操作数据或者表达式 ++ – !
二目运算符:由一个运算符连接的两个操作数据或者表达式
三目运算符:由两个运算符连接的三个操作数据或者表达式
条件表达式 ? 表达式1 : 表达式2
如果条件表达式为true执行表达式1
如果条件表达式为false执行表达式2
//判断一个人是否为成年人
var age = 11;
age >= 18 ? console.log('成年人') : console.log('未成年人');
var res = age >= 18 ? '成年人' : '未成年人';
console.log(res);
//练习:声明变量保存用户输入的用户名和密码,如果用户名是root并且密码是123456,打印’登录成功’,否则打印’登录失败’
var uname = 'root';
var upwd = '123456';
var res = uname === 'root' && upwd === '123456' ? '登录成功' : '登录失败';
console.log(res);
2.浏览器端函数
alert() 弹出警示框
//alert('WEB2104');
//alert('javascript');
prompt() 弹出提示框(输入框),需要使用变量保存用户输入的值,类型是字符串型,如果直接点击取消返回null。如果什么也没输入点击确定得到的是空字符串( “”)
var uname = prompt('input user name');
var upwd = prompt('input password');
console.log(uname,upwd);
console.log(typeof uname,typeof upwd);
//练习:弹出两次提示框,分别输入数字,计算两个数字相加的和,将结果以警示框形式弹出
var n1 = prompt('input num1');
var n2 = prompt('input num2');
//将相加的结果以警示框弹出
alert( parseFloat(n1) + parseFloat(n2) );
程序 = 数据 + 算法
程序的执行方式:顺序执行、选择执行、循环执行
3.流程控制(选择执行)
(1)if语句
满30减20
if(条件表达式){ 语句块}
如果if后的语句块中只有一行代码,则大括号可以省略
var total = 28;
if(total >= 30){
//在当前总价基础之上减20
total -= 20; //total = total-20;
}
//练习:声明变量保存年份,使用if语句,判断是否为闰年,如果是打印’闰年’
var year = 2021;
//可读性
if(year% 4 === 0 && year % 100 !== 0 || year % 400 === 0){
console.log('闰年');
console.log('2月有29天');
}
以下数据作为条件表达式会隐式转换为false
0 ‘’ undefined null NaN
if(!''){
//console.log('ok');
}
练习:声明变量保存用户的签名内容,如果签名内容为空设置默认内置为’这家伙很懒,什么也没留下’,最后打印签名内容。
var str='';
//如果是空字符串,执行语句块中代码
if(!str){//str === ''
str = '这家伙很懒,什么也没留下';
}
//console.log(str);
(2)if-else语句
if(条件表达式){ 语句块1}else{ 语句块2}
(3)if-else嵌套
if(条件表达式1){
语句块1
}else if(条件表达式n){
语句块n}else{
语句块n+1 //以上所有的条件表达式都是false
}
//判断是否为成年人
var age = 12;
if(age >= 18){
console.log('成年人');
}else{
console.log('未成年人');
}
//练习:声明变量保存用户输入的用户名和密码,如果用户名是root并且密码是123456,打印'登录成功',否则打印'登录失败'
//使用if-else判断
var uname = 'root';
var upwd = '123333';
if(uname === 'root' && upwd === '123456'){
console.log('登录成功');
}else{
console.log('登录失败');
}
*/
//练习:声明变量保存读取的性别的值(1/0),如果是1打印'男',否则是0打印'女'
//分别使用if-else和三目运算两种方法完成
var sex = 0;
if(sex){
console.log('男');
}else{
console.log('女');
}
console.log(sex ? '男' : '女');
(4)switch-case
是特殊的多项分支语句,根据表达式的值选择执行对应的语句
switch(表达式){
case 值1:
语句块1
break;
case 值n:
语句块n
break;
default:
语句块n+1 //表达式和case后的值都不相同}
/*
//1-非洲(瓦坎达) 2-印度 3-日本
var n;
if(n === 1){
console.log('瓦坎达');
}else if(n === 2){
console.log('印度');
}else if(n === 3){
console.log('日本');
}else{
console.log('八宝山');
}
//练习:假设从数据库中读取到了订单的状态码,根据订单的状态码打印对应的汉字状态
//1-等待付款 2-等待发货 3-运输中 4-已签收 5-已取消 其它-无法追踪
var status = null;
if(status === 1){
console.log('等待付款');
}else if(status === 2){
console.log('等待发货');
}else if(status === 3){
console.log('运输中');
}else if(status === 4){
console.log('已签收');
}else if(status === 5){
console.log('已取消');
}else{
console.log('无法追踪');
}
*/
//练习:声明变量保存一个人的成绩,如果不在0~100之间打印'非法的成绩',然后再判断成绩打印出对应的状态
//90~100 优秀
//80~90以下 良好
//70~80以下 中等
//60~70以下 及格
//60以下 不及格
var score = 52;
if(score > 100 || score < 0){
console.log('非法的成绩');
}else if(score >= 90){//score>=0 score<=100
console.log('优秀');
}else if(score >= 80){//score>=0 score<90
console.log('良好');
}else if(score >= 70){//score>=0 score<80
console.log('中等');
}else if(score >= 60){//score>=0 score<70
console.log('及格');
}else{//score>=0 score<60
console.log('不及格');
}
对比if-else嵌套和switch-case的区别
相同:两者都可以用于多项判断
不同:if-else既可以进行等于,也可以进行不等于的比较;switch-case只能进行全等于的比较;if-else的适用范围更加广泛,switch-case结构上更为清晰,执行效率更高。
课后任务
(2)练习:弹出两次提示框分别输入商品的单价和数量,计算出总价;如果总价满1000打九折,假设当前会员卡内有余额1200,如果足以支付,警示框弹出’pay success’,否则支付失败,警示框弹出’pay err’
//练习:弹出两次提示框分别输入商品的单价和数量,计算出总价;如果总价满1000打九折,假设当前会员卡内有余额1200,如果足以支付,警示框弹出'pay success',否则支付失败,警示框弹出'pay err'
//获取用户输入的单价和数量
var price = prompt('input price');
var num = prompt('input number');
//计算出总价 = 单价*数量
//隐式转换
var total = price * num;
console.log(total);
//判断是否满1000
if(total >= 1000){
//打九折
total *= 0.9;
}
console.log(total);
//当前卡内余额
var card = 1200;
//判断是否足以支付
if(card >= total){
alert('pay success');
}else{
alert('pay error');
}