统一沿用【智慧城市】世界观讲JavaScript(对照菜鸟教程js-intro + 2026现代JS)

统一沿用【智慧城市】世界观讲JavaScript(对照菜鸟教程js-intro + 2026现代JS)

回顾设定:浏览器里的智慧小区公示大屏(DOM楼房);HTML=大屏图纸;CSS=大屏装修;JavaScript = 大屏旁边的【现场运维员】
运维员待在浏览器本地,不需要每次都跑去城市数据中心;可以监听市民的操作、修改公示大屏DOM楼房、校验市民填写的表单,也可以呼叫总部API拿数据。
对应菜鸟教程原文:JS是轻量级脚本语言,嵌入HTML,浏览器执行,用来给网页增加交互、读写页面元素、校验输入、响应点击事件。

一、JS整体定位(开篇口述)

HTML画出公示大屏板块,CSS美化大屏;但大屏本身是死的。JS运维员站在大屏旁边,监听市民的动作,随时修改大屏文字、广告牌,校验市民填写的登记表,还可以派人去城市数据中心调取资料。
JS有两个上岗地点:

  1. 浏览器端(前端JS,我们重点学):智慧小区大屏运维员,操作DOM公示大屏。
  2. Node.js(后端JS):运维员调到城市数据中心机房,变成机房办事员,和PHP、Go一样处理后台业务。

JS名字里虽然带Java,但两者毫无关系,就像“茉莉花”和“芒果”,名字相似,完全不是一类东西。

二、基础语法(运维员的工具箱)

1. 变量 let / const = 运维员手里的储物收纳盒

let boxName:可更换内容的收纳盒;
const boxId:盒子内容固定,一旦放进去就不能换(固定编号、常量)。

收纳盒可以放不同种类东西:数字、文字、真假标记。JS是动态类型,盒子今天放数字,明天可以换成文字。

let roomNum = 1201;       // Number数字:房号
let ownerName = "老王";   // String字符串:文字,必须加引号
let isPay = true;         // Boolean布尔:只有true(已缴费)、false(未缴费)
let emptyBox = null;      // null:盒子清空,里面什么都没有
let noThing;              // undefined:盒子存在,但从来没放任何东西

2. 数组 Array = 一排连续的文件格子(下标从0开始!)

一排档案格子,0号格子是第一项,1号第二项。

let residentList = ["老王","小张","小李"];

residentList[0] 取出老王;.push() 新增住户到末尾。

3. 对象 Object = 住户档案卡(属性+信息,还可以附带操作方法)

一张住户卡片,记录姓名、房号,还附带操作动作。

let resident = {
  name:"老王",
  room:1201,
  sayHi:function(){ alert("你好") }
}

类比:档案卡,resident.name 读取卡片上的姓名。

4. 运算符(运维员做计算、比对)

  • 算术:+ - * / % 计算物业费、房屋面积
  • 比较 > < === 判断物业费是否到期;===严格比对(推荐,2026现代JS优先用)
  • 逻辑 && || !:并且、或者、取反

5. 分支判断 if / switch(运维员根据条件做不同动作)

if(欠费){
  大屏提示:请缴费
}else{
  大屏:欢迎回家
}

比喻:运维员看登记表,如果欠费,就在公示大屏贴欠费通知;正常就展示欢迎文字。

6. 循环 for / while(重复做一件事)

for:批量打印所有住户名单,循环遍历住户列表,逐个在大屏展示住户信息。

比喻:运维员逐个翻阅住户档案,循环查看所有人缴费状态。

7. 函数 function / 箭头函数(运维员封装一套固定工作流程)

把一套重复工作打包成一个任务指令,需要的时候直接调用。

// 定义任务:弹出提示
function showTip(msg){
  alert(msg)
}
showTip("欢迎访问智慧小区");

alert() 就是浏览器自带的内置函数,弹出弹窗提示(菜鸟教程示例);
prompt():弹出输入框,收集市民输入;confirm():确认弹窗。

内置函数:浏览器提前装好的工具,document.write、console.log 都是自带工具。

三、DOM操作:运维员操作公示大屏(核心,对应菜鸟教程)

document = 大屏物业总管。JS运维员指挥总管修改DOM楼房。

  1. document.write("内容"):直接往大屏上写文字、广告牌(教程第一个示例)
  2. document.querySelector():找到大屏上某一块广告牌/输入框
  3. .innerHTML:读取/修改广告牌里面的文字内容>

故事:运维员找到公示大屏上的通知板块,直接修改上面文字,不用推倒重建整栋DOM楼房。

四、事件 Event(重点!菜鸟教程核心:JS对事件做出反应)

事件 = 市民对大屏做出的动作:点击按钮、输入文字、页面加载、鼠标悬浮。
运维员一直盯着大屏,事件发生,才执行JS代码。

<button onclick="alert('欢迎!')">点我</button>

比喻:大屏上的【查询住户】按钮,市民点击(click事件),触发运维员执行任务:读取输入内容,校验信息,然后修改大屏。
常见事件:

  • click 点击
  • input 输入框打字
  • submit 表单提交(提交登记信息)

表单数据校验(菜鸟教程案例:验证输入)

市民在大屏表单输入手机号、房号,JS运维员在本地先校验:判断是不是数字、内容是否为空。校验不通过,直接弹窗提示,不用把数据送到城市数据中心,节省网络请求。

if(isNaN(inputValue)){
  alert("房号必须是数字!")
}

五、异步、网络请求(运维员呼叫城市总部API)

运维员在大屏这边,发送请求到城市数据中心API窗口,拿住户数据,拿到数据之后,更新公示大屏。

就是前面流程里的:前端JS调用RESTful API,拿到JSON数据,局部更新DOM,不刷新整页。
JSON:总部给运维员传递数据的标准档案格式。

六、代码写在哪里(三种方式)

  1. 行内:直接写在HTML按钮上 onclick(教程示例)
  2. <script>标签写在HTML页面内部
  3. 外部 .js 文件,单独存放运维员全部指令,通过src引入(大型项目推荐)

七、现代JS 2026新增要点(ES6+,现代教程标准)

  1. 箭头函数:简写函数任务,更简洁
  2. 解构:快速取出对象/数组里面的数据
  3. 可选链 ?.:安全读取档案信息,档案不存在不会直接崩溃
  4. use strict 严格模式:强制规范运维员写代码,减少低级错误

八、控制台 console.log

运维员的工作记录本,在浏览器开发者工具控制台打印日志,调试代码,查看变量内容,排查错误。

✅ 课堂精简口述稿(一口气讲,对照菜鸟教程)

我们继续智慧城市比喻,JavaScript就是智慧小区公示大屏旁边的现场运维员。HTML是大屏图纸,CSS是大屏装修,运维员JS负责监听市民操作,修改大屏DOM楼房。
我们用let、const收纳盒存放数据,收纳盒可以放数字、文字、真假标记、空值;数组是一排连续档案格子,对象是住户档案卡片。
用运算符做计算对比,if和switch根据条件执行不同操作,for循环重复遍历住户名单;函数是打包好的一套固定工作任务,alert、prompt是浏览器自带弹窗工具。
JS运维员通过document物业总管操作DOM公示大屏,读写广告牌文字;事件就是市民操作大屏,比如点击按钮,触发JS执行任务。
表单提交前,JS可以在本地校验市民输入内容,判断输入是否合法,不用发送到远端服务器。
JS还能发起网络请求,调用城市数据中心API接口拿到JSON住户数据,局部更新大屏,不用刷新整个页面。
代码可以直接写在HTML页面script标签,也可以放到独立的js文件;我们用console.log写工作日志调试代码。
JS除了浏览器大屏工作,Node.js版本还可以调到城市机房,做后端办事员。

随堂练习题(配套讲课)

  1. JS运维员主要工作地点在哪?>

浏览器内的公示大屏旁边,可以直接操作DOM楼房。

  1. let 和 const收纳盒的区别?>

let盒子内容可以更换;const盒子一旦存入内容不能修改。

  1. 事件是什么?>

用户的动作,比如点击按钮,触发JS代码执行。

  1. 表单校验为什么放在JS前端做?>

在本地大屏提前校验,不合格直接提示,减少和远端服务器通信。

黑板文字版简易大纲

JS = 大屏【现场运维员】
├─变量(let/const):收纳盒,存数字、文字、布尔、null、undefined
├─数组[]:一排档案格(下标从0)
├─对象{}:住户档案卡,属性+方法
├─运算符、if判断、for循环
├─函数:打包一套任务;alert弹窗工具
├─DOM:指挥document物业总管修改大屏
├─事件:点击、输入,触发代码执行
├─表单校验:本地检查输入
├─网络请求:调用API,获取JSON,局部更新页面
└─Node.js:运维员调到机房做后端
posted @ 2026-10-15 13:24  华腾智算  阅读(3)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL