先使用变量后用var定义变量 会出现变量提升, 给变量一个初始值undefined。es6提供了新的声明变量的关键字:let,使用let,变量不会被重复声明。使用let不存在变量提升,会报错:annot access 'str' before initialization
document.write(str);
var str = '123';
//let str = '123';
es6提供了一个声明常量的关键字:const。给常量变量重新赋值会报错:Assignment to constant variable。
for循环:
for (初始部分; 循环条件; 条件迭代){
//循环执行的语句
}
初始部分 —>条件判断(为true则继续循环,为false结束循环)—>执行循环语句—>改变循环变量的值—>条件判断。
for-in循环:
常用于对数组或对象的属性进行循环操作。
for (变量 in 对象) {
//循环执行的语句
}
<script>
let arr = ['前端','大数据','ui','测试','云计算'];
let subject = prompt('输入一个想学习的科目?');
let flag = false;
for(let key in arr){
if(subject==arr[key]){
flag = true;
}
}
if(flag){
alert('恭喜这个科目可以学习')
}else{
alert('不好意思这个课程没有开展')
}
</script>
在循环中可以增加if选择结构,进行复杂的循环。