This commit is contained in:
rou
2026-03-19 15:17:29 +08:00
parent 81004b437c
commit 3afbee1535
14 changed files with 190 additions and 6 deletions

View File

@@ -6,12 +6,27 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>居中专题</title>
<style>
html {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
body {
background-color: rgb(255, 248, 238);
margin: 0;
padding: 0;
width: 100%;
height: 100%;
position: fixed;
}
.stage {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background-color: white;
border: 1px solid rgba(255, 156, 7, 0.25);
border-radius: 20px;
@@ -34,7 +49,7 @@
<body>
<div class="stage">
<div class="box">把我放到中间</div>
<div class="box">把我放到中间 transform: translate(-50%, -50%); </div>
</div>
</body>

View File

@@ -1,6 +1,14 @@
const userName = "";
let currentStage = "";
const userName = "小明";
let currentStage = "学习中";
let completedExercises = 0;
completedExercises = 2;
console.log('学习者:' + userName);
console.log('学习阶段:' + currentStage);
console.log('学习次数:' + completedExercises);
// 任务:
// 1. 给上面的变量赋一个合理值

View File

@@ -6,3 +6,11 @@ const hasPaid = true;
// 1. 把 ageText 转成数字,保存到 ageNumber
// 2. 分别输出 studentName、ageText、ageNumber、hasPaid 的类型
// 3. 用模板字符串输出一句报名信息
const ageNumber = Number(ageText);
console.log(typeof studentName);
console.log(typeof ageText);
console.log(typeof ageNumber);
console.log(typeof hasPaid);
alert('姓名:${studentName},年龄:{ageNumber},报名状态:{hasPaid}')

View File

@@ -4,6 +4,31 @@ const score = 86;
// 1. 用布尔值保存是否及格
// 2. 用 if...else if...else 判断等级
// 3. 输出分数、是否及格、等级
/*- 根据分数计算是否及格
- 根据分数输出等级
- 90 分及以上为 A
- 80 到 89 为 B
- 60 到 79 为 C
- 60 以下为 D*/
let passed = false;
let grade = "";
let point = 70;
if (point >= 90) {
grade = 'A'
} else if (point >= 80 && point <= 89) {
grade = 'B'
} else if (point >= 60 && point <= 79) {
grade = 'C'
} else if (point <= 60) {
grade = 'D'
}
if (grade != 'D') {
passed = true
}
console.log('分数:${point}');
console.log('是否及格:${passed}');
console.log('等级:${grade}');

View File

@@ -5,3 +5,17 @@
// 4. 输出 sum
let sum = 0;
for (let i = 1; i <= 7; i++) {
console.log(i);
if (i == 4) {
continue
}
}
let j = 1
while (j <= 5) {
sum = sum + j
j++
}
console.log(sum);

View File

@@ -1,11 +1,30 @@
function getAverage(score1, score2, score3) {
return (score1 + score2 + score3) / 3
// 返回平均分
}
function getLevel(average) {
if (average >= 90) {
return '优秀'
} else if (average >= 60 && average < 90) {
return '良好'
} else {
return '继续努力'
}
// 根据平均分返回等级描述
}
const average = getAverage(75, 89, 100)
const level = getLevel(average)
console.log(average);
console.log(level);
// 任务:
// 1. 调用上面两个函数
// 2. 输出平均分和等级
/*- 写一个 `getAverage` 函数
- 接收 3 个分数参数
- 返回平均分
- 再写一个 `getLevel` 函数
- 根据平均分返回“优秀”“良好”“继续努力”*/

View File

@@ -4,3 +4,13 @@ const topics = ["HTML", "CSS", "JavaScript"];
// 1. 往 topics 里新增一个主题
// 2. 输出 topics 的长度
// 3. 用循环输出每一项
/*- 创建一个包含 3 个学习主题的数组
- 新增 1 个学习主题
- 输出数组长度
- 依次输出每个学习主题*/
topics.push('Vue')
console.log(topics.length);
for (let i = 0; i < topics.length; i++) {
console.log(topics[i]);
}

View File

@@ -9,3 +9,15 @@ const course = {
// 2. 新增 teacher 属性
// 3. 输出完整对象
// 4. 输出 title 和 teacher
/*- 创建一个课程对象
- 至少包含名称、课时、是否完结
- 修改其中一个属性
- 新增一个老师属性
- 输出完整对象和其中两个单独属性*/
course.finished = true
course.teacher = '李老师'
console.log(course);
console.log(course.title);
console.log(course.lessons);

View File

@@ -6,3 +6,11 @@ const tags = ["变量", "条件", "函数"];
// 2. 转成大写
// 3. 判断是否包含 JS
// 4. 把 tags 用顿号连接成一句话
/*- 把一段带空格的文本去掉首尾空格
- 把结果转成大写
- 判断里面是否包含 `JS`
- 把一个标签数组拼成一个字符串输出*/
const rawTrim = rawTitle.trim()
const rawTo = rawTitle.toUpperCase()
const result = rawTitle.includes("JS")
const tagsJoin = rawTitle.join(",")

View File

@@ -2,10 +2,27 @@ function createCounter() {
let count = 0;
// 返回一个函数
function a() {
count++
return count
}
}
const counterA = createCounter()
const counterB = createCounter()
console.log(counterA());
console.log(counterA());
console.log(counterB());
// 任务:
// 1. 创建 counterA 和 counterB
// 2. 连续调用 counterA 两次
// 3. 再调用 counterB 一次
// 4. 观察为什么两个计数器互不影响
/*写一个 `createCounter` 函数
- 在函数内部定义 `count`
- 返回一个内部函数
- 每次调用内部函数时,`count` 都加 1
- 创建两个不同的计数器
- 观察为什么它们各自记住了自己的 `count`*/

View File

@@ -7,14 +7,35 @@ const scores = [78, 85, 92];
function getAverageScore(list) {
// 计算平均分
let sum = 0
for (let i = 0; i < list.length; i++) {
sum = sum + list[i]
}
return sum / list.length
}
function getLevel(average) {
// 返回等级
if (average >= 80) {
return "可以进入下一阶段"
} else {
return "保持当前等级"
}
}
const average = getAverageScore(scores)
const level = getLevel(average)
console.log("姓名:" + student.name + "阶段:" + student.stage + "平均分:" + "average" + "等级:" + level);
// 任务:
// 1. 计算平均分
// 2. 计算等级
// 3. 输出姓名、阶段、平均分、等级
// 4. 如果平均分 >= 80输出“可以进入下一阶段”
/*一个 `student` 对象
- 一个 `scores` 数组
- 一个计算平均分的函数
- 一个判断等级的函数
- 输出姓名、平均分、等级
- 如果平均分大于等于 80再输出“可以进入下一阶段”*/

View File

@@ -13,15 +13,24 @@ function compareScope() {
console.log("块内:", lessonName, chapterName, stage);
}
var lessonName = "变量";
let chapterName = "作用域";
const stage = "进阶";
console.log("块内:", lessonName);
// 任务:
// 1. 输出 lessonName
// 2. 不要直接在这里输出 chapterName否则会报错
// 3. 用一句注释说明为什么
}
compareScope();
// 任务:
// 4. 试着重新给 const 声明的值赋值
// 5. 观察会发生什么
/*观察 `var` 声明前为什么能访问到 `undefined`
- 用 `var` 声明一个函数内部变量
- 用 `let` 声明一个代码块内部变量
- 在可访问的位置输出它们
- 观察为什么 `var` 在块外还能访问,而 `let` 不行
- 再写一段代码证明 `const` 不能被重新赋值*/

View File

@@ -25,3 +25,11 @@
- [starter.js](/Users/lijiaqing/home/wwwroot/front-end-example/03-javascript-core/12-this-keyword/starter.js)
- [answer.js](/Users/lijiaqing/home/wwwroot/front-end-example/03-javascript-core/12-this-keyword/answer.js)
function a() {
}
const b = () => {
}

View File

@@ -4,15 +4,25 @@ const student = {
sayHello() {
// 任务:
// 1. 用 this.name 输出问候语
console.log(this.name + "你好!");
},
createArrowReporter() {
// 任务:
// 2. 返回一个箭头函数
// 3. 在箭头函数里输出 this.name
return () => {
console.log(this.name);
}
},
};
// 任务:
// 4. 调用 student.sayHello()
student.sayHello()
// 5. 把 student.sayHello 赋值给 detachedHello 再调用
const detachedHello = student.sayHello
detachedHello()
// 6. 调用 createArrowReporter 返回的新函数
student.createArrowReporter()()