JS 就是让网页"活起来"的语言。HTML 摆结构、CSS 做样式,JS 负责交互——一点按钮就反应、输入就校验、滚动就动。
本页三个重点:
① JS 能做什么——操作页面、处理数据、发请求
② JS 在哪跑——浏览器里跑,不需要装环境
③ JS 怎么学——先看后练,每个知识点都有演示
坑:把 JS 和 Java 搞混(完全两种语言)、以为要装软件才能跑。
这段文字会被 DOM 改掉
你去饭店吃饭:HTML 是桌椅板凳和菜单(把东西摆出来),CSS 是装修和灯光(让它好看),JavaScript 就是服务员——你点一下(点按钮),他就去改菜、上菜、跟后厨沟通。没有服务员,这桌饭只能看不能吃。
专业说法是:JS 是一门解释型、动态类型、弱类型、基于原型的语言。别怕,逐个翻成人话:
| 术语 | 人话 | 生活类比 |
|---|---|---|
| 解释型(脚本) | 浏览器一行一行读、读到哪执行到哪,不用先打包成 exe | 同声传译:说一句翻一句 |
| 动态类型 | 一个变量(小箱子)今天装数字、明天能装文字,不挑 | 同一个纸箱子今天装苹果明天装书 |
| 弱类型 | 浏览器会偷偷帮你把类型变一变再算,比如把 "5" 自动当数字 5 | 超市不问你,直接把零钱凑成整 |
| 基于原型 | 它的"继承"靠原型对象实现(后面才学,先记这个词) | 现在知道有这回事就行 |
// 动态类型:同一个小箱子 x,先装数字,再装文字,不报错 // 现在 x 里是数字 10 let x = 10; // typeof 就是"问它是什么类型",这里答 number console.log(typeof x); // 现在往同一个 x 里塞文字,完全允许 x = "hello"; // 这回答 string(字符串) console.log(typeof x);
简单、安全、动态、跨平台。每个词背后都有道理:
| 特点 | 人话解释 |
|---|---|
| 简单 | 语法不挑类型,新手容易上手 |
| 安全 | 浏览器把 JS 关在"玻璃房"里跑,不让它随便翻你硬盘,防恶意脚本搞破坏 |
| 动态(事件驱动) | 你点一下、打个字,它立刻响应,不用一直去问服务器 |
| 跨平台 | 只要有浏览器就能跑,Windows、苹果手机都一样 |
你写的 JS 在浏览器里干活,其实是三部分拼出来的,把它想成一个人:
浏览器端 JavaScript = ECMAScript + DOM + BOM 1. ECMAScript( 简称 ES): 相当于 "语法规则" 就是变量、 加减乘除、 if 判断、 循环这些最基本的写法。 跟浏览器长什么样没关系, 在哪儿写都一样。 2. DOM: 相当于 "一双手" 专门用来动网页—— 改文字、 改颜色、 点按钮变图。 点上面 "点我改页面文字" 按钮, 用的就是它。 3. BOM: 相当于 "遥控器" 控制浏览器本身—— 弹窗、 跳页、 查浏览器信息、 定时器。 点 "点我弹窗" 按钮, 用的就是它。
学习路线别搞反:如果你一上来就学 DOM/BOM 却看不懂 if 和变量,就会像没学走路就想跑。所以本系列先把 ES 语法(地基)砸实,再用 DOM 改页面、用 BOM 控浏览器,一步一步来。
① 可能在什么地方用:网页点按钮弹出提示;登录后表单校验通过再跳转;商品轮播图自动一张张切换。
② 常见的问题:把 JS 写在 head 里,网页还没加载完就去找页面元素,结果拿到 null 报错。
③ 解决思路:把 script 放到 body 最底部;操作元素前先 console.log 打印一下,看看到底拿到没有。
| API | 作用 | 参数 | 返回值 | 代码示例 |
|---|---|---|---|---|
| document.getElementById | 按 id 找页面元素 | id 字符串 | 找到的元素 / 找不到返回 null | let box = document.getElementById("out"); |
| innerHTML | 读取或改写元素里的 HTML | 无(读)/ HTML 字符串(写) | 当前 HTML 字符串 | box.innerHTML = "<b>你好</b>"; |
| textContent | 读取或改写元素里的纯文字 | 无 / 文字字符串 | 当前纯文字 | box.textContent = "你好"; |
| alert | 弹出系统提示框 | 提示文字 | undefined | alert("你好"); |
| typeof | 查这个值是什么类型 | 任意值 | 类型字符串(如 number) | console.log(typeof 123); // "number" |