Javascript基本语法
为什么要学JavaScript
JavaScript是实现网页交互与动态效果的核心语言。HTML定义页面结构,CSS负责样式美化,而JavaScript则赋予页面“生命力”——从简单的表单验证、按钮点击响应,到复杂的动画效果、数据可视化,都依赖JavaScript实现。没有JavaScript,网页只是静态的信息展示,无法满足现代用户对交互体验的需求。
什么是JavaScript
| js_gramma_helloWorld.html | |
|---|---|
脚本的执行原理

JavaScript的基本语法

JavaScript与Java在语法上有些相似,但也不尽相同。下面将结合Java语言对编写JavaScript代码时需要注意的事项进行详细介绍。
-
JavaScript区分大小写
-
每行结尾的分号可有可无
-
变量是弱类型的
-
使用大括号标记代码块
-
注释
JavaScript中的关键字
JavaScript中的关键字是指在JavaScript中具有特定含义的、可以成为JavaScript语法中一部分的字符。与其他编程语言一样,JavaScript中也有许多关键字,JavaScript中的关键字如下表所示。
| abstract | continue | finally | instanceof | private | this |
| boolean | default | float | int | public | throw |
| break | do | for | interface | return | typeof |
| byte | double | function | long | short | true |
| case | else | goto | native | static | var |
| catch | extends | implements | new | super | void |
| char | false | import | null | switch | while |
| class | final | in | package | synchronized | with |
变量的声明和赋值
变量是指程序中一个已经命名的存储单元,其主要作用就是为数据操作提供存放信息的容器。在使用变量前,必须明确变量的命名规则、变量的声明方法以及变量的作用域。
变量的声明方式有var、let和const三种,语法如下:
其中,var是传统的变量声明方式,let和const是ES6新增的变量声明方式。三者之间的区别如下:
var - 函数作用域或全局作用域 let - 块级作用域 const - 块级作用域
var - 变量可以提升(在变量声明前使用变量,变量的值为undefined。) let - 变量不能提升(在变量声明前使用变量,会报错。) const - 块级作用域提升(在变量声明前使用变量,会报错。)
var - 变量可以重新声明 let - 变量不能重新声明 const - 变量不能重新声明
示例:
var - 变量可以重新赋值 let - 变量不能重新赋值 const - 变量不能重新赋值
示例:
var v = 5; let l = 10;
数据类型
JavaScript数据类型包含:数据类型、对象类型和空类型。其中:
-
值类型:包括数值(Number)、字符串(String)、布尔型(Boolean)、对象(Object)、函数(Function)和符号(Symbo)6种。
-
引用类型:包括、数组型(Array)、等。值类型在内存中直接存储值,引用类型在内存中存储的是指向值的指针。
-
空类型:包括null和undefined。
变量类型
Javascript变量的类型在赋值时确定并且可以动态改变,例如:
可以使用typeof运算符来检查变量的类型,例如:
运算符号
运算符对一个或多个变量或值(操作数)进行运算,并返回一个新值
根据所执行的运算,运算符可分为以下类别:
-
算术运算符
+、-、 * 、 / 、%、++、--、-(求反)
-
比较运算符
==、!=、>、>=、<、<=
-
逻辑运算符
&&、||、!
逻辑控制语句
条件语句用于根据条件的真假来执行不同的代码块.
语法
示例:
多分支语句用于根据表达式的值来执行不同的代码块.
语法
示例:
注释
注释用于解释代码,提高代码的可读性,但注释本身不是JavaScript代码,不会被浏览器执行。JavaScript支持两种注释:单行注释和多行注释。
单行注释
以 // 开始,以行末结束
示例:
多行注释
以 /* 开始,以 */ 结束,符号 /*…… */ 指示中间的语句是该程序中的注释。
示例:
类型转换
JavaScript变量可以通过以下方式转换类型:
- 显式类型转换:使用
parseInt、parseFloat、Number等函数将字符串转换为数值型、浮点型或数值型等。
示例:
-
隐式类型转换:JavaScript会自动将不同类型的值进行比较或计算时,会将它们转换为数值型。
示例:
函数
函数是JavaScript中的一段可重用代码块,用于执行特定任务。函数接受输入(参数),执行操作,并可能返回结果。
创建函数
函数声明是一种命名函数,它有一个正式的名称。
语法
示例
函数表达式是一种匿名函数,它没有正式的名称。
语法
示例
函数参数
函数参数是函数定义时使用的变量,用于接收调用函数时传递的值。
普通参数是函数定义时使用的变量,用于接收调用函数时传递的值。
语法
示例
默认参数是函数定义时使用的变量,用于接收调用函数时传递的值,如果没有传递值,则使用默认值。。
语法
示例
返回值
函数可以返回一个值,用于调用函数时接收结果。
语法
示例
函数的作用域
函数的作用域是指在函数体中可以访问的变量。包含全局作用域和函数作用域。其中:
- 全局作用域:在函数外部定义的变量,可以在任何函数中访问。
- 函数作用域:在函数内部定义的变量,只能在函数内部访问。
语法
示例
this关键字
this关键字是指向调用函数的对象。不同的调用方式会导致this指向不同的对象。
示例
调用函数
函数调用是指在程序中调用函数,执行函数体中的代码。
**语法**
```javascript linenums="1"
函数名(参数1,参数2,… );
```
事件
事件是指在程序中特定的时间点,用于触发特定的事件处理程序。
JavaScript与Web页面之间的交互是通过用户操作浏览器页面时触发相关事件来实现的。例如,在页面载入完毕时将触发onload(载入)事件、当用户单击按钮时将触发按钮的onclick事件等。事件处理程序则是用于响应某个事件而执行的处理程序。事件处理程序可以是任意JavaScript语句,但通常使用特定的自定义函数(Function)来对事件进行处理。
事件与处理程序绑定语法:
示例
| 事件 | 触发时机 |
|---|---|
| onabort | 对象载入被中断时触发 |
| onblur | 元素或窗口本身失去焦点时触发 |
| onchange | 改变<select>元素中的选项或其他表单元素失去焦点,并且在其获取焦点后内容发生过改变时触发 |
| onclick | 单击鼠标左键时触发。当光标的焦点在按钮上,并按下回车键时,也会触发该事件 |
| ondblclick | 双击鼠标左键时触发 |
| onerror | 出现错误时触发 |
| onfocus | 任何元素或窗口本身获得焦点时触发 |
| onkeydown | 键盘上的按键(包括Shift或Alt等键)被按下时触发,如果一直按着某键,则会不断触发。当返回false时,取消默认动作 |
| onkeypress | 键盘上的按键被按下,并产生一个字符时发生。也就是说,当按下Shift或Alt等键时不触发。如果一直按下某键时,会不断触发。当返回false时,取消默认动作 |
| onkeyup | 释放键盘上的按键时触发 |
| onload | 页面完全载入后,在Window对象上触发;所有框架都载入后,在框架集上触发;<img>标记指定的图像完全载入后,在其上触发;或<object>标记指定的对象完全载入后,在其上触发 |
| onmousedown | 单击任何一个鼠标按键时触发 |
| onmousemove | 鼠标在某个元素上移动时持续触发 |
| onmouseout | 将鼠标从指定的元素上移开时触发 |
| onmouseover | 鼠标移到某个元素上时触发 |
| onmouseup | 释放任意一个鼠标按键时触发 |
| onreset | 单击重置按钮时,在<form>上触发 |
| onresize | 窗口或框架的大小发生改变时触发 |
| onscroll | 在任何带滚动条的元素或窗口上滚动时触发 |
| onselect | 选中文本时触发 |
| onsubmit | 单击提交按钮时,在<form>上触发 |
| onunload | 页面完全卸载后,在Window对象上触发;或者所有框架都卸载后,在框架集上触发 |
源代码