❤️🔥前情提要❤️🔥
欢迎来到JavaScript基本语法教程
上一章讲解了JavaScript快速入门的知识。本章将详细讲解JavaScript基本语法。
JavaScript 是一个脚本语言。它是一个轻量级,但功能强大的编程语言。
在进入工作岗位之前,语言是你简历上应该具备的基本技能之一。
🍪本教程内容干货满满,跟上步伐吧~🍪
作者介绍:
🎓 作者:某编程爱好者📜
🗒️系列文章&专栏推荐: 🔗《JavaScript快速入门教程》 、🔗《MySQL数据库》、🔗 《Web前端教程》、🔗《Python基础》
🕸️为大家推荐一款很好用的前端刷题网站🔗点击跳转
👉变量是用于存储信息的"容器"。
💡概念及规则
概念
自定义一些符号来标记一些名称,并赋予其特定的用途,如变量名、函数名等,这些符号都被称为标识符。定义规则
大小写字母、数字、下划线和美元符号($)组成。不能以数字开头。区分大小写。不能使用JavaScript中的关键字命名。见其名知其意”。合适标识符示例
合法的标识符为: it、It、age66、_age、$name
非法的标识符为: t-o、t o、798lu
⚠️注意
多个单词进行表示时,常见的表示方式有下划线法(如user_name)、驼峰法(如userName)和帕斯卡法(如UserName)。读者可根据开发需求统一规范命名的方式,如下划线方式通常应用于变量的命名,驼峰法通常应用于函数名的命名等。💡概念及规则
保留关键字
是指在JavaScript语言中被事先定义好并赋予特殊含义的单词。
| break | case | catch | class | const | continue |
|---|---|---|---|---|---|
| debugger | default | delete | do | else | export |
| extends | false | finally | for | function | if |
| import | in | instanceof | new | null | return |
| super | switch | this | throw | try | true |
| typeof | var | void | while | with | yield |
⚠️注意
未来保留关键字
是指预留的,未来可能会成为保留关键字的单词。
| abstract | arguments | await | byte | boolean | char |
|---|---|---|---|---|---|
| double | enum | eval | final | float | goto |
| implements | int | interface | let | long | native |
| package | private | protected | public | short | static |
| synchronized | throws | transient | volatile |
⚠️注意
不要用未来保留关键字,避免将来转换为关键字时出现错误。💡概念及规则
概念
变量可以看作是存储数据的容器。定义规则
杯子,杯子指变量,杯中的水指保存在变量中的数据。语法
var关键字声明,并且变量名的命名规则与标识符相同。举例
合法变量名(如number、_it123)、非法变量名(如88shout、&num)。
⚠️注意
未赋初始值的变量,默认值会被设定为undefined。
行末的分号表示语句结束。
变量与变量之间的逗号(,)操作符,可实现一条语句同时完成多个变量的声明。
var sales;
var hits, hot, NEWS;
var room_101, room102;
var $name, $age;
// 声明变量、为变量赋值
var unit, room;
unit = 3;
room = 1001;
// 声明变量的同时为变量赋值
var fname = 'Tom', age = 12;
// 省略var关键字,直接为变量赋值
flag = false;
a = 1, b = 2;
⚠️注意
不容易发现代码中的错误,所以推荐读者在使用变量前,要养成先声明的良好习惯。❓什么是常量
🥐常量
始终不变的量。🥯特点
定义就不能被修改或重新定义。🌰举例
π就是一个常量,其值就是固定且不能被改变的。💬语法
const关键字,用于实现常量的定义📄常量命名规则
大写字母表示。🌲常量的值
常量在赋值时可以是具体的数据,也可以是表达式的值或变量。
⚠️注意
赋值就不能被改变。声明时必须为其指定某个值。👉值类型(基本类型)
String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。👉引用数据类型(对象类型)
Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。👉JavaScript中的数据
在使用或赋值时根据设置的具体内容再确其对应的类型。
但每一种计算机语言都有自己所支持的数据类型,JavaScript也不例外。

1️⃣布尔型
布尔型是JavaScript中较常用的数据类型之一,通常用于逻辑判断。真”和“假”,严格遵循大小写,因此true和false值只有全部为小写时才表示布尔型。2️⃣数值型
概念
不区分整数和浮点数,所有数字都是数值型。
- ”符号表示负数。+ ”符号表示正数(通常情况下省略“+”)。NaN表示非数值。var oct = 032; // 八进制数表示的26
var dec = 26; // 十进制数26
var hex = 0x1a; // 十六进制数表示的26
var fnum1 = 7.26; // 标准格式
var fnum2 = -6.24; // 标准格式
var fnum3 = 3.14E6; // 科学计数法格式3.14*106
var fnum4 = 8.96E-3; // 科学计数法格式8.96*10-3
// 只要给定的值不超过JavaScript中允许数值指定的范围即可。
NaN非数值
NaN 是一个全局对象的属性,它的初始值就是NaN。非数字(Not a Number)。是否属于数值型。NaN没有一个确切的值,仅表示非数值型的一个范围。结果不一定为真(true),这是由于被操作的数据可能是布尔型、字符型、空型、未定义型和对象型中的任意一种类型。3️⃣字符型
String)是由Unicode字符、数字等组成的字符序列,这个字符序列我们一般将其称为字符串。文本的数据类型。单引号(")或双引号("")。var slogan = 'Knowledge'; // 单引号,存放一个单词
var str = "the sky is blue."; // 双引号,存放一个句子
var color = '"red"blue'; // 单引号中包含双引号
var food = "'pizza'bread"; // 双引号中包含单引号
var num = '', total = ""; // 定义空字符串
// 由单引号定界的字符串中可以包含双引号。
// 由双引号定界的字符串中也可以包含单引号。
单引号中使用单引号,或在双引号中使用双引号?\”进行转义。| 特殊字符 | 含义 | 特殊字符 | 含义 |
|---|---|---|---|
| ’ | 单引号 | " | 双引号 |
| \n | 回车换行 | \v | 跳格(Tab、水平) |
| \t | Tab符号 | \r | 换行 |
| \f | 换页 | \ | 反斜杠(\) |
| \b | 退格 | \0 | Null字节 |
| \xhh | 由两位16进制数字hh表示的ISO-8859-1字符。如“\x61”表示“a” | \uhhhh | 由四位16进制数字hhhh表示的Unicode字符。如“\u597d”表示“好” |
4️⃣空型
空型(Null)只有一个特殊的null值。
空型用于表示一个不存在的或无效的对象与地址。
JavaScript中大小写敏感,因此变量值只有是小写的null时才表示空型(Null)。
5️⃣未定义型
未定义型(Undefined)也只有一个特殊的undefined值。
未定义型用于声明的变量还未被初始化时,变量的默认值为undefined。
与null不同的是,undefined表示没有为变量设置值,而null则表示变量(对象或地址)不存在或无效。
⚠️注意
null和undefined与空字符串('')和0都不相等。❓为什么需要数据类型检测,以下面的示例进行讲解?
var num1 = 12, num2 = '34', sum = 0; // 声明变量并赋值
sum = num1 + num2; // 变量进行相加运算
console.log(sum); // 输出结果:1234
❓请分析并说出变量sum的数据类型,以及为什么?
变量sum是字符型。字符型,则它表示字符拼接。而此案例中参与运算的两个变量,num1是数值型,num2是字符型,因此最后的输出结果变量sum就是num1与num2进行拼接后的字符串。数据类型检测。JavaScript中对于数据类型的检测提供了以下两种方式
typeof操作符Object.prototype.toString.call()
以字符串形式,返回未经计算的操作数的类型。onsole.log(typeof num1); // 输出结果:number
console.log(typeof num2); // 输出结果:string
console.log(typeof sum); // 输出结果:string
⚠️在利用typeof检测null的类型时返回的是object而不是null。
🐘由于JavaScript中一切皆对象,因此可利用Object.prototype.toString.call()对象原型的扩展函数更精确的区分数据类型。
var data = null; // 待判断的数据
var type = 'Null'; // 数据类型,开始字母要大写,如Boolean等
// 检测数据类型的表达式,若是指定的type型,则返回true,否则返回false
Object.prototype.toString.call(data) == '[object ' + type + ']';
Object.prototype.toString.call(data)的返回值是一个形如“[object 数据类型]”的字符型结果。(可通过console.log()观察返回值。)🏻转布尔型
应用场景
表达式和流程控制语句中,如数据的比较、条件的判断。实现语法
Boolean()函数。注意事项
Boolean()函数会将任何非空字符串和非零的数值转换为true,将空字符串、0、NaN、undefined和null转换为false。演示示例
是否有内容输入。var con = prompt();
if (Boolean(con)) {
document.write('已输入内容');
} else {
document.write('无输入内容');
}
单击“取消”按钮,则结果为false未输入,单点击“确定”按钮,则结果为false🏻转布尔型
应用场景
保证参与运算的都是数值型,经常需要对其进行转换。实现语法
Number()函数、parseInt()函数或parseFloat()函数。演示示例
自动求和。// 获取用户的输入,完成自动求和
var num1 = prompt('请输入求和的第1个数据:'); // 123abc
var num2 = prompt('请输入求和的第2个数据:'); // 456
console.log(num1 + num2); // 123abc456
console.log(parseInt(num1) + parseInt(num2)); // 579
⚠️转数值型的函数在使用时有一定的区别。
| 待转数据 | Number() | parseInt**()** | parseFloat**()** |
|---|---|---|---|
| 纯数字字符串 | 转成对应的数字 | 转成对应的数字 | 转成对应的数字 |
| 空字符串 | 0 | NaN | NaN |
| 数字开头的字符串 | NaN | 转成开头的数字 | 转成开头的数字 |
| 非数字开头字符串 | NaN | NaN | NaN |
| null | 0 | NaN | NaN |
| undefined | NaN | NaN | NaN |
| false | 0 | NaN | NaN |
| true | 1 | NaN | NaN |
所有函数在转换纯数字时会忽略前导零,如“0123”字符串会被转换为123。
arseFloat()函数会将数据转换为浮点数(可以理解为小数)。
parseInt()函数会直接省略小数部分,返回数据的整数部分,并可通过第2个参数设置转换的进制数。
🏻转字符型
实现语法
String()函数和toString()方法。实现方式的区别
String()函数可以将任意类型转换为字符型;除了null和undefined没有toString()方法外,其他数据类型都可以完成字符的转换。演示示例
var num1 = num2 = num3 = 4, num4 = 26;
console.log(String(12));
console.log(num1 + num2 + num3.toString());
console.log(num4.toString(2));
// 第①步:计算num1+ num2的结果为8。
// 第②步:num3转成‘4’。
// 第③步:拼接两次计算的结果为84。
⚠️注意
toString()方法在进行数据类型转换时,可通过参数设置,将数值转换为指定进制的字符串,例如num4.toString(2),表示首先将十进制26转为二进制11010,然后再转为字符型数据。概念
最简单的表达式可以是一个变量。
var x, y, z; // 声明变量
x = 1; // 将表达式“1”的值赋给变量x
y = 2 + 3; // 将表达式“2 + 3”的值赋给变量y
z = y = x; // 将表达式“y = x”的值赋给变量z
console.log(z); // 将表达式“z”的值作为参数传给console.log()方法
console.log(x + y); // 将表达式“x + y”的值作为参数传给console.log()方法
👉所谓运算符就是专门用于告诉程序执行特定运算或逻辑操作的符号。
对数值类型的变量及常量进行算数运算。
也是最简单和最常用的运算符号。
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| + | 加 | 5+5 | 10 |
| - | 减 | 6-4 | 2 |
| * | 乘 | 3*4 | 12 |
| / | 除 | 3/2 | 1.5 |
| % | 求余 | 5%7 | 5 |
| ** | 幂运算 | 3**4 | 81 |
| ++ | 自增(前置) | a=2, b=++a; | a=3;b=3; |
| ++ | 自增(后置) | a=2, b=a++; | a=3;b=2; |
| – | 自减(前置) | a=2, b=–a; | a=1;b=1; |
| – | 自减(后置) | a=2, b=a–; | a=1;b=2; |
⚠️注意
四则混合运算,遵循 “先乘除后加减”的原则。
取模运算结果的正负取决于被模数(%左边的数)的符号。
尽量避免利用小数进行运算,有时可能因JavaScript的精度导致结果的偏差。
“+”和“-”在算术运算时还可以表示正数或负数。
运算符(++或–)放在操作数前面,先进行自增或自减运算,再进行其他运算。
若运算符放在操作数后面,则先进行其他运算,再进行自增或自减运算。
递增和递减运算符仅对数值型和布尔型数据操作,会将布尔值true当做1,false当做0。
概念
var color = 'blue';
var str = 'The sky is '+color;
var tel = 110 + '120';
console.log(str); // 输出结果为:The sky is blue
console.log(tel); // 输出结果为:110120
console.log(typeof str, typeof tel); // 输出结果:string string
⚠️注意
概念
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| = | 赋值 | a=3, b=2; | a=3;b=2; |
| += | 加并赋值 | a=3, b=2; a+=b; | a=5;b=2; |
| -= | 减并赋值 | a=3, b=2;a-=b; | a=1;b=2; |
| *= | 乘并赋值 | a=3, b=2;a*=b; | a=6;b=2; |
| /= | 除并赋值 | a=3, b=2;a/=b; | a=1.5;b=2; |
| %= | 模并赋值 | a=3, b=2;a%=b; | a=1;b=2; |
| += | 连接并赋值 | a=‘abc’;a+=‘def’; | a=‘abcdef’; |
| **= | 幂运算并赋值 | a=2; a**= 5; | a=32; |
| <<= | 左移位赋值 | a=9,b=2;a <<= b; | a=36;b=2; |
| >>= | 右移位赋值 | a=-9,b=2;a >>= b; | a=-3;b=2; |
| >>>= | 无符号右移位赋值 | a=-9,b=2;a >>>= b; | a= 1073741821;b=2; |
| &= | 按位与赋值 | a=3,b=9;a &= b; | a=1;b=9; |
| ^= | 按位异或赋值 | a=3,b=9;a ^= b; | a=10;b=9; |
| |= | 按位或赋值 | a=3,b=9;a |= b; | a=11;b=9; |
⚠️注意
概念
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| == | 等于 | x == 4 | false |
| != | 不等于 | x != 4 | true |
| === | 全等 | x === 5 | true |
| !== | 不全等 | x !== ‘5’ | true |
| > | 大于 | x > 5 | false |
| >= | 大于或等于 | x >= 5 | true |
| < | 小于 | x < 5 | false |
| <= | 小于或等于 | x <= 5 | true |
⚠️注意
概念
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| && | 与 | a && b | a和b都为true,结果为true,否则为false |
| || | 或 | a || b | a和b中至少有一个为true,则结果为true,否则为false |
| ! | 非 | ! a | 若a为false,结果为true,否则相反 |
⚠️注意
概念
表达式
概念
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| & | 按位与 | a & b | a和b每一位进行“与”操作后的结果 |
| | | 按位或 | a | b | a和b每一位进行“或”操作后的结果 |
| ~ | 按位非 | ~ a | a的每一位进行“非”操作后的结果 |
| ^ | 按位异或 | a ^ b | a和b每一位进行“异或”操作后的结果 |
| << | 左移 | a << b | 将a左移b位,右边用0填充 |
| >> | 右移 | a >> b | 将a右移b位,丢弃被移出位,左边最高位用0或1填充 |
| >>> | 无符号右移 | a >>>b | 将a右移b位,丢弃被移出位,左边最高位用0填充 |
⚠️注意
JavaScript中位运算符仅能对数值型的数据进行运算。在对数字进行位运算之前,程序会将所有的操作数转换成二进制数,然后再逐位运算。
按位与
按位或
按位非
按位异或
左移
右移
无符号右移
概念
表中运算符的优先级由上至下递减
| 结合方向 | 运算符 |
|---|---|
| 无 | () |
| 左 | . [] new(有参数,无结合性) |
| 右 | new(无参数) |
| 无 | ++(后置) --(后置) |
| 右 | ! ~ -(负数) +(正数) ++(前置) --(前置) typeof void delete |
| 右 | ** |
| 左 | * / % |
| 左 | + - |
| 左 | << >> >>> |
| 左 | < <= > >= in instanceof |
| 结合方向 | 运算符 |
|---|---|
| 左 | == != === !== |
| 左 | & |
| 左 | ^ |
| 左 | | |
| 左 | && |
| 左 | || |
| 右 | ?: |
| 右 | = += = *= /= %= <<= >>= >>>= &= ^= |= |
| 左 | , |
⚠️注意
⚡恭喜你的内功又双叒叕敠得到了提高!!!🔋
👉本节首先介绍了JavaScript的变量、数据类型,然后讲解了表达式、运算符等相关的内容,各个大板块中针对JavaScript的基础知识进行了解释,包括标识符、关键字、数据类型、表达式、逻辑运算符、三元运算符、位运算符等
🔚以上就是JavaScript基本语法的全部知识了~
🤗感谢大家的阅读~
💫如果有错误❌,欢迎指正呀💫
✨如果觉得收获满满,可以点点赞👍支持一下哟~✨
