前言
1. 程序默认从上到下一句一句代码执行, 这就是顺序结构
2. 打断点操作
<script>
var a = 2;
debugger;
console.log(a);
var b = 10;
console.log(b);
var c = 20;
console.log(c);
if (a>3) {
console.log('a>3');
} else {
console.log('a<=3');
}
</script>
(二) 分支结构
1. if else
<script>
var age = prompt();
// 先转成数字
age = Number(age);
debugger;
// age的值是NaN,结果为true, 否则为false
if (isNaN(age)) {
alert('请输入数字');
} else {
if (age < 0) {
alert('请输入大于或等于0的数字');
} else {
// 进行年龄分段的判断
if (age < 6) {
alert('这是个婴儿');
} else if (age < 12) {
alert('这是个少儿');
}else if (age < 17) {
alert('这是个青少年');
}else if (age < 45) {
alert('这是个青壮年');
}else if (age < 69) {
alert('这是个中年人');
}else {
alert('这是个老年人');
}
}
}
</script>
2. 三目运算符
<script>
var sex = '男';
var str;
if(sex === '男') {
str = '是个男的';
} else {
str = '是个女的';
}
// 三目运算符 判断条件为true取?后面的值,否则取:后面的值
var str2 = sex === '男'?'是个男的':'是个女的';
console.log(str);
console.log(str2);
</script>
3. switch break
//方法一
<script>
var floor = prompt();
floor = Number(floor);
// if (floor == 1) {
// alert('上1楼');
// } else if (floor == 2) {
// alert('上2楼');
// } else if (floor == 3) {
// alert('上3楼');
// } else if (floor == 4) {
// alert('上4楼');
// }
//方法二
switch (floor) {
case 1:
alert('上1楼');
break;
case 2:
alert('上2楼');
break;
case 3:
alert('上3楼');
break;
case 4:
alert('上4楼');
break;
default:
alert('请输入楼层');
}
</script>
(三) 循环结构
1. for 循环
- 标准 for 循环四要素 ```javascript for(var i=0;i<5;i++){ console.log(‘i=’,i); }
(1)循环变量初始值 var i=0; (2)循环条件 var i<5; (3)循环变量改变 i++; (4)循环体 console.log(‘i=’,i);
1. for 循环的运行规律
(1)第一次循环 1->2->4->3 (2)第二次循环 2->4->3 (3)第三次循环 2->4->3 …….. 当循环条件不满足,就会结束循环
1. continue 和 break
```javascript
<script>
console.log('-------------break------------')
for(var i=0;i<10;i++){
console.log('i=',i);
if (i===5) {
break;
}
}
console.log('-------------continue------------')
for(var j=0;j<10;j++){
// continue后的代码不再执行,继续进入下一轮循环
if (j===5) {
continue;
}
console.log('j=',j);
}
</script>
- for循环的四个部分不是必须的
死循环
<script>
// 死循环
for(;;){}
</script
2. 数组遍历和对象遍历
<script>
// 数组的遍历
var filmList = [
{name: '电影1',time: 1233},
{name: '电影2',time: 1233},
{name: '电影3',time: 1233}
];
// 一个简单的遍历
for (var i=0;i<filmList.length;i++){
var film = filmList[i];
console.log('第'+(i+1)+'电影', film);
}
// 把电影名称拼接起来, 用逗号隔开
var filmStr = '';
for (var i=0;i<filmList.length;i++){
var film = filmList[i];
filmStr = filmStr + film.name + ',';
// console.log(filmStr);
}
// 遍历之后的运算的结果
console.log(filmStr);
// 对象遍历
var person = {name: 'laohu', age: 100};
for (var p in person) {
console.log(p,person[p])
}
</script>
例子
<script>
var performer = {
chineseName: "迪丽热巴·迪力木拉提",
english: "Dilraba Dilmurat",
alias: ["迪丽热巴", "小迪", "热巴", "胖迪"],
nationality: "中国",
nation: "维吾尔族",
birthplace: "新疆维吾尔自治区乌鲁木齐市",
birthDate: "1992年6月3日",
constellation: "双子座",
blood: "AB型",
height: 168,
weight: 47,
school: "上海戏剧学院",
occupation: ["演员", "歌手"],
agency: "嘉行天下工作室",
representative: ["阿娜尔罕", "克拉恋人", "三生三世十里桃花", "烈火如歌", "一千零一夜"],
achievements: [
"2016年中英电影节最佳新人奖",
"2016年中国泛娱乐指数盛典新势力女艺人奖",
"2016年爱奇艺尖叫之夜新生代最具实力演员",
"2015年国剧盛典年度最受欢迎新人女演员",
"2014年中国时尚权力榜年度演艺圈新锐势力奖"
]
}
// 遍历对象属性
for (var p in performer) {
console.log(p, performer[p]);
debugger;
}
</script>
3. while 循环 和 do while 循环
(四) 渲染商品列表
1. 模板字符串, 字符串中的变量使用${变量名}代替
var username = 'laohu';
var str = `<div>${username}</div>`;
document.write(str);
2. 获取网页内的元素节点
// 获取id为app的元素节点, 并将节点存放在变量app内
var app = document.getElementById('app');
3. 给元素节点填充内容
// 填充文本
app.innerHtml = 'hello world';
// 填充标签
app.innerHtml = '<div>老胡</div>';
// 字符串拼接变量
var username = 'laohu';
app.innerHtml = '<div>'+username+'</div>'; // 数据多的时候,拼接不方便
<script>
var username = 'laohu';
var age = 100;
var str = `<div style="border:1px solid">用户名:${username} ---- 年龄: ${age}</div>`;
document.write(str);
</script>
4. 使用模板字符串拼接长串标签
资料 1: 课堂练习
计算 1 至 100 累加的值并输出到页面上
<script>
// 作业1
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
console.log('总和:', sum);
</script>
使用for循环把数组的成员展示到页面上
var fruits = ['香蕉', '苹果', '雪梨', '火龙果'];
<script>
var fruits = ['香蕉', '苹果', '雪梨', '火龙果'];
// 方法1
for (var i = 0; i < fruits.length; i++) {
var item = fruits[i];
document.write(item + '</br>');
}
// 方法2, 这种方法更好, 只操作一次元素节点
var str = '';
for (var i = 0; i < fruits.length; i++) {
var item = fruits[i];
str = str + item + '</br>'
}
document.write(str);
</script>
第2题中, 香蕉字体变黄色, 苹果字体变体红色, 雪梨颜色变白色, 火龙果颜色变粉红色
<script>
var fruits = ['香蕉', '苹果', '雪梨', '火龙果'];
var str = '';
for (var i=0;i<fruits.length;i++){
}
</script>
// 优化版本//////////////////
var fruits = ['香蕉', '苹果', '雪梨', '火龙果', '木瓜', '荔枝'];
var str = '';
for (var i = 0; i < fruits.length; i++) {
var item = fruits[i];
var color;
switch (item) {
case '香蕉':
color = 'yellow';
break;
case '苹果':
color = 'red';
break;
case '雪梨':
color = 'blue';
break;
case '火龙果':
color = 'pink';
break;
default:
color = 'black';
}
str += `<li style="color:${color}">${item}</li>`;
}
document.write(str);
//进阶版//////////////////////
<body>
<ul id="app">
</ul>
<script>
var fruits = ['香蕉','苹果','雪梨','火龙果'];
//var app=<title>Document</title>.<ul id="app"></ul>
var app = document.getElementById('app');
//声明为空
var str = '';
//i=0;i=香蕉','苹果','雪梨','火龙果']的 长度(length);i放后面先运算,再自增
for(var i=0;i<fruits.length;i++)
{
var item = fruits[i];
//str=str +
str +=`<li style="color:red;">${item}</li>`
}
console.log(str);
app.innerHTML = str;
</script>
</body>
```javascript //完整版///////////////////////
* { padding: 0; margin: 0; } ul, li { list-style: none; } ul { padding: 0 20px; } li { height: 50px; border-bottom: 1px solid #999; display: flex; justify-content: space-between; align-items: center; } .f16 { font-size: 16px; } .f12 { font-size: 12px; }
<ul id="list">
<!-- <li>
<div>
<p class="f16">香蕉</p>
<p class="f12">海南</p>
</div>
<div class="f12">四季</div>
</li> -->
</ul>
<script>
var fruits = [{
name: '香蕉',
season: '四季',
prodAdrr: '海南'
}, {
name: '苹果',
season: '夏天',
prodAdrr: '山东'
}, {
name: '雪梨',
season: '冬季',
prodAdrr: '广西'
}, {
name: '火龙果',
season: '春节',
prodAdrr: '广东'
}];
var str = '';
for (var i = 0; i < fruits.length; i++) {
var item = fruits[i];
str += `<li>
<div>
<p class="f16">${item.name}</p>
<p class="f12">${item.prodAdrr}</p>
</div>
<div class="f12">${item.season}</div>
</li>`;
}
document.getElementById('list').innerHTML = str;
</script>
4. 编程题
```javascript
要求:
(1)收集本小组成员个人信息, 做成一个数组, 并且使用for循环把成员信息输出到网页上
(2)成员信息包含姓名, 年龄, 性别, 籍贯, 爱好
(3)可以设置适当的样式,做成移动端动态页面
作业(周五&周六)
- 作业1: 渲染电影列表, 列表数据在本日代码的data文件夹内
- 作业2: 卖座网详情静态页面(每个人都要完成)
作业3: 团队合作写生鲜网静态页面 http://fresh.huruqing.cn/product/list
(1)共七个静态页面:首页, 详情页, 分类页面, 购物车页面(登录才能查看), 个人中心页面, 设置页面, 登录页面
(2)组长负责安排任务: 比如谁负责公共部分, 谁负责首页, 谁负责购物车页面
(3)人数少的小组,至少每个人写两个页面,有能力者可多写
使用语雀总结本周所学知识, 把不明白的知识点搞明白