循环结构1
var let const
// 使用var关键字定义的变量,变量名可以重复,后面的变量会将前面的变量覆盖掉。
var i = 100
console.log('i='+i);
var i = 200
console.log('i='+i);
var i = 'hello'
console.log('i='+i);
console.log('-----------------------------------');
// var方式定义变量,会统一提升到作用域的顶端定义,然后再指定的地方赋值。
console.log('j='+j);
if(true){
var j = 100
console.log('j='+j);
}
console.log('j='+j);
console.log('-----------------------------------');
// 使用let,在同一个作用域中,不能定义同名的变量。
let a = 100
// 这里的代码会报错,提示a重复定义了
// let a = 200
console.log('a='+a);
// let定义的变量,不存在提升。所以,下面的代码会报错,提示b没有定义
// console.log('b='+b);
if(true){
let b = 200
console.log('b='+b);
}
console.log('-----------------------------------');
// const关键字,用于定义常量,常量的特点是:不能重新赋值,并且在定义时,必须要赋值。
let c = 200
console.log('c='+c);
c = 300
console.log('c='+c);
const d = 500
console.log('d='+d);
// 这里的代码会报错,提示不能对常量重新赋值
// d = 1000
let e;
e = 1000
console.log('e='+e);
// 这里的代码会报错,提示必须给常用初始化(在定义常量的时候,就必须要赋值)
// const f;
模板字符串
// 字符串可以通过+号进行拼接
console.log('姓名:'+name+',性别:'+sex+',年龄:'+age+',学历:'+education+',电话:'+tel);
// 在ES6中,又加入 `` ,在反引号里面,可以定义模板字符串,方式是${变量名}
console.log(`姓名:${name},性别:${sex},年龄:${age},学历:${education},电话:${tel}`);
console.log('-----------------------------');
// 如果输出的内容,包含一对双引号,那么字符串用单引号定义
console.log('"好哈学习,天天向上"');
// 如果输出的内容,包含一对单引号,那么字符串用双引号定义
console.log("'好哈学习,天天向上'");
// 如果输出的内容中既要包括双引号,又要包括单引号,必须要将字符串拆分开来写,然后用+号拼接
console.log("'好哈学习,天天向上',"+'"你好世界"');
// 现在直接使用模板字符串
console.log(`'好好学习,天天形式',"你好世界"`);
console.log('-----------------------------');
// 转义字符:带有特殊含义的字符
// \t表示制表符
// \n表示换行符
// 取消转义字符串的含义,直接输出该字符,需要加\\
console.log('好好学习\\t天天向上');
console.log('好好学习\\n天天向上');
// \\ 就表示 \
while循环
// 打印100遍:好好学习,天天向上
// 当我们需要重复执行某一个业务的时候,就需要使用循环
// 第一种循环:while
let i = 1 //定义循环的条件变量
// ()里面,放在循环的条件判断,返回true执行循环体,返回false,跳出整个循环。
while(i<=100){
console.log(i+'好好学习,天天向上');
//在循环体中,一定要对循环变量重新赋值,否则会形成死循环。
i++ // => i+=1 => i=i+1
}
console.log('end');
// 练习题3:输入年 月 日,算出该日期是全年的第多少天
// 假如这个日期是:2021-8-15
// 使用循环 + if实现
let year = parseInt(prompt('请输入年份:'))
let month = parseInt(prompt('请输入月份:'))
let day = parseInt(prompt('请输入日期:'))
let sum = 0 //用于累加总天数
// 01.累加整月天数
let i = 1 //表示从1月份开始
while(i<month){
//每循环一次,要判断i的值是多少,确定加多少天
if(i===1 || i===3 || i===5 || i===7 || i===8 || i===10){
sum += 31
}else if(i===4 || i===6 || i===9 || i===11){
sum += 30
}else{
//else是二月份,所以,要判断是否是闰年
if(year%4===0&&year%100!==0 || year%400===0){
sum += 29
}else{
sum += 28
}
}
i++ //i的值每次加1
}
// 02.累加当月天数
sum += day
alert(`${year}-${month}-${day}是全年的第${sum}天`)
do-while循环
do{操作}while(条件)
while循环的特点是:先判断条件,再执行循环操作
do-while循环的特点是:先执行一次循环操作,再判断循环条件
do-while循环没有入口条件判断,循环体无条件先执行一次,从第二次开始判断