本文适合想要快速入门 JavaScript 的人群,从变量、运算符、语句等最基本的知识点入手,言简意赅,绝不拖泥带水
1、简介
1.1、什么是 JavaScript
JavaScript(通常简写为 JS )是一种轻量的、解释性的、面向对象的头等函数语言,其最广为人知的应用是作为网页的脚本语言,但同时它也在很多非浏览器环境下使用。JS是一种动态的基于原型和多范式的脚本语言,支持面向对象、命令式和函数式的编程风格。JavaScript运行在网页的客户端,能被用来设计和编程网页在事件发生时的行为。
1.2、第一个 JavaScript 程序
和 CSS 一样,JS 也有两种写法,要么和 HTML 代码写在同一个文件内,这种情况下 JavaScript 代码需要使用 < script >< /script > 标签包起来;或者选择分开写,这时候需要在 HTML 文件的 < head >< /head > 标签内写上 JavaScript 代码文件的路径(推荐相对路径,尽量不要使用绝对路径),具体格式看下面案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第一个JavaScript程序</title>
<!-- 1、直接在 HTML 文件中书写 JavaScript 代码 -->
<!-- <script>
alert("Hello World!")
</script>-->
<!-- 2、通过分离写法实现弹窗,注意 <script> 必须成对出现(推荐!) -->
<script src="JS/first.js"></script>
</head>
<body>
</body>
</html>
//写在 .js 文件里面
alert("Hello World!") // alert 就是弹窗的意思
弹窗:
初步了解之后,那么下面正式进入 JavaScript 的学习!
2、基本知识点
2.1、变量
学习一门语言,变量肯定是必须优先掌握的,其实变量的使用大部分语言都是相似的,我们可以举一反三
- 变量名是大小写 英文、数字、$ 和 _ 的组合,且不能用数字开头,也不能使用 JavaScript 的关键字
- 变量名可以使用中文(如果你不怕挨打的话)
- JavaScript 严格区分 大小写
- 声明一个变量尽量使用 var(后面我们会遇到 let 和 const)。可以发现我们没有提到类型,其实在 JavaScript 中变量不需要声明类型(有点 python 的味道)
- 变量申明结束使用 ;,这不是强制性,但是为了不必要的错误,推荐带上
//不推荐这种写法,这样代表全局变量,意味着所有的地方都可以使用,大大提高出错率
name_1 = "Mike"; //name_1 变量的创建,随处可以访问这个变量
//使用 var 声明变量
var name_2 = "Mike"; //name_2 变量,只能在函数体内部使用。注意,是函数体内部,而不是代码块!
//使用 let 和 const 声明变量
{
let name_3 = "Mike"; } //name_3 只能在代码块中使用
{
const name_4 = "Mike"; } //name_4 只能在代码块中使用,且不能修改
2.2、数据类型
在 JavaScript 中有 5 种基本的数据类型和 3 种引用类型
基本类型:
类型名称 | 解释说明 |
---|---|
string | 字符串类型,使用 ‘’ 或者 “” 括起来的任意文本 |
number | 数值类型,JavaScript 中不区分整数和浮点数,统一用 number 代替 |
boolean | 布尔类型,只有 true 和 false 两种值 |
null | 空值,注意这里的空不是指 ’ '、" "、0,null 可以理解为什么都没有 |
undefined | 未定义,意思就是未声明的变量 |
引用类型:
类型名称 | 解释说明 |
---|---|
object | 对象,一组由键-值组成的无序集合,用 {} 括起来,可以放任意类型的数据(这 8 种都行) |
array | 数组,一组按顺序排列的集合,用 [] 括起来,也可以放任意类型的数据 |
function | 函数,就是你们理解的那个函数 |
下面我们一一举例子,为了更加直观,有些时候我们就不使用 var 修饰了,反正也不会报错
1、number
a = 123; //整数
b = 123.4; //小数
c = 1.123e3 ; //科学计数法
d = -99; //负数
e = NaN; //not a number
f = Infinity; //无穷大
2、string
g = 'abc'; //单引号
h = "abc"; //双引号
3、boolean
i = true; //逻辑对
j = false; //逻辑错
4、null & undefined
k = null; //k 的值为 null,就是什么都没有
l = undefined; //未定义
5、object
//使用 {} 说明对象的属性,中间用 , 隔开,控制台输出属性使用 对象名.属性名
var obj = {
name: "Mike",
age: 31,
school: "清华大学"
};
6、array
//使用 [] 将数组内容括起来,访问的时候采用各个元素的下标
var arr = ["Mike", 31, "清华大学"];
7、function
//函数的使用我们以后会将,这里先展示一下
function say_hello() {
console.log("Hello!");
}
可以使用 typeof 运算符获取变量的数据类型(这里引用 W3School 中的例子)
typeof 3.14; // 返回 "number"
typeof NaN; // 返回 "number"
typeof "John"; // 返回 "string"
typeof false; // 返回 "boolean"
typeof myCar; // 返回 "undefined"
typeof [1,2,3,4]; // 返回 "object"
typeof {
name:'John', age:34}; // 返回 "object"
typeof new Date(); // 返回 "object"
typeof null; // 返回 "object"
typeof function () {
}; // 返回 "function"
2.3、运算符
运算符在许多语言中都差不多,如果你忘记了,那么就多试两次,不用刻意去记忆,写多了自然就不会忘了!
算术运算符
+ //加法
- //减法
* //乘法
/ //除法
% //取模(余数)
++ //递加
-- //递减
逻辑运算符
&& //逻辑与,俩都为真结果为 true
|| //逻辑或,俩都为假结果为 false
! //逻辑非,将真值取反
赋值运算符
= //赋值运算符
+= //加等
-= //减等
*= //乘等
/= //除等
%= //模等
比较运算符
== //等于(注意:类型不一样,值相同,也会判断为 true)
=== //绝对等于(类型不一样,值相同,判断为 false)
!= //不相等
!== //不等值或不等型
> //大于
< //小于
>= //大于或等于
<= //小于或等于
? //三元运算符
类型运算符
typeof //返回变量的类型。
instanceof //返回 true,如果对象是对象类型的实例
位运算符
& //与
| //或
~ //非
^ //异或
<< //零填充左位移
>> //有符号右位移
>>> //零填充右位移
注意事项:
-
由于 == 有缺陷,所以尽量不要使用
-
NaN === NaN,结果为 false,因为 NaN 与所有的数都不相同,只能同过 isNaN(NaN) 结果才为 true
-
浮点数运算会有精度的损失,例如 1/3 === (1-2/3) 结果为 false
2.4、基本语句
任何一个程序,都是建立在变量和基本语句的基础上,在前面我们已经了解了变量的使用方法,现在介绍 JavaScript 的基本语句(简略一点,能来学习 JavaScript 的人应该都学过其他编程语言吧),这里啰嗦一句,JavaScript 不像 Java 可以使用 IDEA 调试,调试 JavaScript 一般我们都是打开浏览器(Chrome 和 Edge 按 F12),在浏览器的控制台界面进行调试:
按照我的理解分类语句:
- 条件判断:if、switch
- 循环:for、while、do while
- 控制:break、continue、return
- 其他:try … catch、debugger
1、条件判断语句,顾名思义,根据不同的条件执行不同的分支语句
/* 1、【if 语句格式】(推荐带上 {},避免给自己找麻烦):
if () { ... }
if () { ... } else { ... }
if () { ... } else if () { ... } else { ... } */
//随便举一个例子,结果就不展示了,自己去试哦
var course = 90;
if (course > 60 && course < 80) {
alert("合格");
} else if (course >= 80) {
alert("优秀");
} else {
alert("不合格");
}
/* 2、【switch 语句格式】(不要忘了 break!):
switch () {
case 值1:
分支1
break;
case 值2:
分支2
break;
case 值3:
分支3
break;
defalut:
分支4;
} */
var variable_1 = 20;
switch (variable_1 % 10){
case 0:
console.log("variable_1 % 10 = 0");
break;
case 1:
console.log("variable_1 % 10 = 1");
break;
case 2:
console.log("variable_1 % 10 = 2");
break;
default:
console.log("other");
}
2、循环语句,按照指定的次数或者一定的条件重复执行一段代码
/* 1、【for 语句格式】:
for (变量初值; 循环条件; 步长) { ... }
上边的格式没有省略任何语句,实际上【变量初值、循环条件、步长】都可以省略,你甚至可以写成 for (;;),但是这样做会陷入无限循环,毕竟没有停止循环的条件。平常我们还是按照完整格式使用就行 */
var arr = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
for (var i = 0; i < 7; i++) {
//遍历 arr 数组
console.log("第" + (i + 1) + "天是:" + arr[i]);
}
/* 2、【while 循环格式】:
while () { ... }
有些人可能会问(我希望没有) while 语句 和 for 语句哪种更好,我只能说各有千秋,一般 while 语句能用的地方,for 语句也能用,具体还是得看情况,没有谁好谁坏这个说法,比方上面这个例子,我可以拿 while 语句实现 */
var j = 0;
while (j < arr.length) {
console.log("第" + (j + 1) + "天是:" + arr[j]);
j++;
}
/* 3、【do while 语句格式】:
do { ... } while ()
while 语句是执行循环体 前 判断,而do while 语句是执行循环体 后 判断,所以记住一句话,do while 语句至少执行一次循环体! */
var a = 10;
do {
//即使 a 初始值大于 5,依旧会输出 a = 10 这句话
console.log("a = " + a);
} while (a < 5);
/* 4、其实还有 for in 循环,这个是用来遍历 JavaScript 对象所有的属性,由于我们还没有具体接触对象,所以简单提一下吧。
【for in 语句格式】:
for (变量 in 对象){ ... } */
var obj = {
name: "Mike",
age: 31,
school: "清华大学"
};
for (var key in obj){
//注意,打印出来的是属性,而不是属性值!即 name、age、school
console.log(key);
}
3、控制语句,一般用于控制循环语句,增加语句的灵活性
/* 1、break
用于跳出当前的循环,如果是多层嵌套,只会跳出最内层的循环 */
//猜一下这段代码会输出什么结果?答案放在下方,记住 break 只会
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 3; j++) {
console.log("j = " + j);
if (i < 2) {
break;
}
}
console.log("i = " + i);
}
/* 2、continue
用于结束本次循环,开始下一次循环,如果是多层嵌套,只会结束本次最内层的语句 */
//我们把上边的代码改一下,换成 continue,猜一下结果,答案同样放在下方
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 3; j++) {
console.log("j = " + j);
if (i < 2) {
continue;
}
}
console.log("i = " + i);
}
/* 3、return
用于函数返回值,这个就没什么好说的了,例子就不举了哈 */
break 代码运行结果(你答对了嘛?):
continue 代码运行结果:
4、其他语句,这里只介绍 try catch
/* try catch
学习过 Java 的同学,应该对于异常处理机制有一定了解。
首先我们需要明白为什么需要异常处理,一个好的程序或者软件应当具有鲁棒性,即面对不正当的操作,也不会对程序造成致命性错误,这就需要我们编程人员在代码中合理利用异常处理,对一些潜在危险(存在 bug)的代码设置特定的处理机制,try catch 就是常用的手段之一
【语法格式】:
try {
//可能会导致错误的代码块
} catch (error){
//处理的方法
} finally {
//无论是否发生错误,都执行的代码
} */
//下面我们使用 try catch 解决【未定义函数】这种错误
try{
console.log(func1());
}catch(error){
//这里的 error 是基类型,其他写法先不提,暂时用 error 足够了
console.log("调用函数的时候发生了错误!")
}
运行结果(可以看到并没有出现红色的报错提示,不信你自己去掉 try catch 做对比):
其实学过其他编程语言,再学习 JavaScript,一般不会出现语法问题,而且想让 JavaScript 代码报错的机会还真不多,它的容错率非常高
2.5、严格检查模式 strict
使用 strict 模式可以在一定程度上减少因为编写代码随机性产生的问题(如果报错,看看编译器是否支持 ES6 语法)
'use strict';
j = 10; //使用严格检查模式,这行代码会被判定为错误
var i = 1; //这行代码才能通过检查
注意:‘use strict’ 必须写在代码的第一行才能起作用
那么 JavaScript 基本的知识点都简单介绍了一下,如果你是认真看完的,那现在写一些基本的代码应该是不成问题,推荐写完 JavaScript 代码后直接去网页上调试哦(或者你用 IDEA 也行)