前言
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, 否则为falseif (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>// 作业1var sum = 0;for (var i = 1; i <= 100; i++) {sum += i;}console.log('总和:', sum);</script>
使用for循环把数组的成员展示到页面上
var fruits = ['香蕉', '苹果', '雪梨', '火龙果'];
<script>var fruits = ['香蕉', '苹果', '雪梨', '火龙果'];// 方法1for (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)人数少的小组,至少每个人写两个页面,有能力者可多写
使用语雀总结本周所学知识, 把不明白的知识点搞明白
