JS是什么?
JS是一种脚本语言,灵活多变。
可以直接插入HTML页面之中,且插入后可以再浏览器之中运行。
JS语法
1.语句
在JS中 es5版本使用var来声明变量 es6中使用let声明变量
例如:
var a=1+3;
该语句就是声明了一个变量a,然后将1+3的运算结果(表达式)赋值给它
该语句的效果等同于:
var a;
a=1+3;
语句以分号结尾,一个分号表示一个语句,多个语句可以写在一行内,例如:
var a = 1 + 3 ; var b = 'abc';
注意,表达式是不需要分号结尾的,如果添加了分号,则js会将其视为语句,其效果为无意义的语句。
2.变量
变量是对“值”的具名引用。变量就是为“值”起名,然后引用这个名字,就等同于引用这个值。变量的名字就是变量名。
如果只是声明了变量而没有赋值,那么该变量的值默认为undefined
即无定义值
var a;
a // undefined
如果在变量赋值时,没有在前面添加var,则该变量会变成全局变量(所以要记得添加var)
var a = 1;jav
// 基本等同
a = 1;
如果未声明直接使用变量就会报错,同时一条var命令也可以声明多个变量。
JS作为一种动态语言,他的变量类型是随时可以更改的
var a = 1;
a = 'hello';//从数值变成了字符串
如果使用var
重新声明一个已经存在的变量,是无效的。
但如果二次声明进行了赋值则会盖掉前面的值。
var x = 1;
var x = 2;
// 等同于
var x = 1;
var x;
x = 2;
变量提升(重点)
JS的工作方式,是先解析代码,获取变量然后再运行。
变量被提升到代码的头部的这一过程称为变量提升
例如:
console.log(a);
var a=1;
//实际效果为
var a;
console.log(a);
a = 1
//所以这里会显示的结果为undefined 因为在打印的时候a还没有被赋值
3.标识符
就是用来识别值的名字。
变量名hi标识符的一种。(在JS之中要区分大小写)
命名规则如下:
- 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号(
$
)和下划线(_
)。 - 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字
0-9
。
中文是合法的标识符之一。
保留字(不能用作标识符)
JavaScript 有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。
4.注释
//单行注释
/*
多行注释
*/
由于JS兼容html,所以也兼容他的注释
x = 1; <!-- x = 2;
--> x = 3;
上面代码中,只有`x = 1`会执行,其他的部分都被注释掉了。
需要注意的是,`-->`只有在行首,才会被当成单行注释,否则会当作正常的运算。
5.if语句
if
结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是 JavaScript 的两个特殊值,true
表示“真”,false
表示“伪”。
if (m === 3)
m = m + 1;
if (m === 3) {
m += 1;
}
如果想要执行多个语句,则可以使用大括号将多个语句合并成一个语句
if
代码块后面,还可以跟一个else
代码块,表示不满足条件时,所要执行的代码。
if (m === 3) {
// 满足条件时,执行的语句
}
else {
// 不满足条件时,执行的语句
}
6.赋值表达式=,相等运算符==,严格相等运算符===的区别
var x='2'; //赋值表达式就是赋值,但是不能写1=x
var y=2;
if (x == y) {
console.log(x);
}
//==比较的是前后的数值 ,所以哪怕类型不同,数值相同也是可以输出的
if (x === y) {
console.log(x);
}
// ===比较的是前后的数值与类型,只有完全一致才正确
7.switch语句
多个if…else语句可以使用switch
switch (x) {
case 1:
console.log('x 等于1');
break;
case 2:
console.log('x 等于2');
break