一、基本语法
(一)编写JS的位置
1、HTML代码行内
2、script标签中
3、外部的script文件:需要通过script元素的src属性引入js文件
(二)JS编写注意事项
1、script不能写成单标签
2、可省略script标签中的type="text/javascript";属性(因为JS是所有现代浏览器以及HTML5中默认的脚本语言)
3、加载顺序:JS默认遵循HTML文档自上而下的加载顺序
4、JS严格区分大小写
(三)JS交互
1、alert():接受1个参数,使用弹窗查看运行结果
2、console.log():可接受多个参数,在浏览器控制台查看运行结果
3、document.write():接受多个字符串,在浏览器页面查看运行结果
4、prompt:接受1个参数,在浏览器接受用户输入结果
(四)JS语句和分号
1、语句:向浏览器发出的指令,表达1个操作或行为。
2、分号:因人(公司))
(五)JS注释
1、单行注释://
2、多行注释:/**/
3、文档注释:/** ******* */
(六)变量
1、是什么:存放数值的容器且数值可变。
2、命名规则:
(1)首字符必须是字母、下划线(_)或 $ 符号。
(2)其他字符可以是字母、下划线(_)、$ 符号 或 数字。
(3)不能是JavaScript的关键字或保留字,例如 var、function、let 等。
(4)变量名严格区分大小写
3、命名规范:
(1)多个单词使用驼峰标识
(2)变量名语义化(见名知意)
(3)英语单词(尽量不要写拼音)
4、注意事项:
(1)变量未声明直接使用则报错
(2)变量声明了但未赋值,则结果默认是undefined
(3)变量未使用var声明但赋值了,那该变量直接被添加到window对象
eg:age = 18 ;
(七)数据类型
1、Number
2、String
3、Boolean
4、Undefined
5、Null
6、Object
7、BigInt
8、Symbol
(八)typeof操作符
1、number:数值
2、string:字符串
3、boolean:布尔值
4、undefined:未定义
5、object:对象或null
6、function:函数
7、symbol:符号
(九)补充知识
1、浏览器内核、JS引擎、JS代码运行之间的关系是什么?
答:(1)是什么:
浏览器内核(Rendering Engine):又叫渲染引擎,负责将网页的代码(HTML, CSS, JavaScript)“转化”成你肉眼可见的、可交互的页面。eg:WebKit、Blink、Gecko
JavaScript引擎(JS Engine):它是浏览器内核中的一个专门负责处理JavaScript代码的核心子模块。专门负责读取、编译(或解释)和执行JavaScript代码。eg:V8、JavaScriptCore、SpiderMonkey
JavaScript代码:你写的程序指令。它是被动的,需要被JS引擎这个“大脑”来解析和执行,从而驱动网页产生动态效果和交互逻辑。
(2)工作流程:
浏览器内核(Rendering Engine):解析HTML构建DOM树-》解析CSS构建CSSOM树-》合并成渲染树-》布局重排(Layout)-》绘制重绘(Painting)
JavaScript引擎(JS Engine):读取JS代码(Parsing)-》编译(Compilation)成为可执行的机器码(字节码)-》执行(Execution)机器码CPU开始干活-》优化(Optimization)编译结果,让代码跑得更快
JavaScript代码:它是被动的,需要被JS引擎这个“大脑”来解析和执行,从而驱动网页产生动态效果和交互逻辑。
(3)三者关系:
你编写JavaScript代码,并通过
<script>
标签引入网页浏览器内核的网络模块先加载这些代码文本
内核将代码交给它的JS引擎部门处理
JS引擎将代码编译成机器码并执行
执行过程中,JS代码可能会通过DOM API指令内核的渲染引擎:“把这个元素的颜色改成红色!”
渲染引擎接收到指令,重新进行样式计算、布局或绘制,更新页面显示
一个动态的、可交互的网页就这样诞生了
(4)核心图解:
(5)总结归纳:
概念 | 角色 | 职责 | 比喻 |
浏览器内核 | 综合管理者 | 加载资源、解析、渲染、布局、绘制整个页面 | 整个手机(硬件+操作系统) |
JS引擎 | 专业执行者 | 专门编译、优化、执行JavaScript代码 | 手机里的CPU/大脑 |
JS代码 | 指令 | 被动的文本,需要被引擎执行才能生效 | 你在手机上运行的一个APP |
2、机器语言、汇编语言、高级语言分别是什么?它们之间有什么关系?
答:(1)机器语言 (Machine Language) - “用开关指挥”:CPU能直接理解和执行的二进制指令(0和1的序列)。每一串0和1控制着CPU底层的一个特定操作(比如从内存某个位置取数、做加法、存结果)。
(2)汇编语言 (Assembly Language) - “用代号指挥”:机器语言的“助记符”形式。用一些简单的英文单词缩写(称为“助记符”)来代替那一串串二进制码,让人类稍微好理解一点。
eg:CPU寄存器、内存地址
(3)高级语言 (High-Level Language) - “说人话指挥”:更接近人类自然语言(尤其是英语)和数学公式的编程语言。它们完全屏蔽了复杂的硬件细节。
eg:Python, Java, JavaScript, C++, Go, Swift等
语言层次 | 可能的表现形式 | 可读性 |
---|---|---|
机器语言 | 10111000 00000001 00000000 10111100 00000010 00000000 00000000 |
天书 |
汇编语言 |
MOV AX, 1 MOV BX, 2 ADD AX, BX |
勉强能猜 |
高级语言 | result = 1 + 2 |
一目了然 |