一.JavaScript的基本语法:
1.标识符:
(1).由大小写字母、数字、下划线和美元符号($)组成,如str、arr3、get_name、&a。
(2).不能以数字开头,如56name是非法标识符。
(3).严格区分大小写,如it与IT表示两个不同的标识符。
(4).不能使用JavaScript中的关键字命名,如var作为变量名是不合法的。
(5).要尽量做到“见其名知其意”,如name表示名称,age表示年龄等。
值得一提的是当标识符中需要多个单词进行表示时,常见的表示方法有下划线标识法(如user_name)、
驼峰法(userName)和帕斯卡法(UserName)。
2.保留关键字
下面举例ES5中的规定关键字:
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 |
3.变量的使用
变量可以看作是存储数据的容器,通常使用var关键字声明,并且变量名的命名规则与标识符相同。
var sales;
var hits,hot,NEWS;
var room_101,room102;
var $name,$age;
上述代码中,利用var声明,但未赋初始值的变量默认值会被设定为undefined。其中,行末的分号表示语句结束,变量与变量之间的运算符是JavaScript中的逗号,实现一条语句可以同时完成多个变量的声明。
4.变量的赋值
声明完成后就可以为变量赋值,也可以在声明变量的同时为变量赋值。具体示例:
var unit room;
unit=3;
room=1001;
var fname='Tom',age=12;
除了上述方法也可以省略var直接赋值:
flag=false;
a=1,b=2;
由于JavaScript是采用动态编译的所以不推荐第二中
5.基本数据类型:
(1)布尔类型:只有true和false两个值
(2)数值型:包含整数和浮点数
(3)字符型:字符串必须使用双引号或单引号括起来
(4)空型:用于表明某个变量的值为空(赋了值,但是值为null)
(5)未定义型:专门用来确定一个已经创建但没有初值的变量
数据类型转换:
(1)转布尔型:常见的类型转换,经常用于表达式和流程控制语句中,如数据的比较、判断。Boolean()函数可以对用户输入的任何内容进行布尔类型的转换。除此之外,Boolean()函数将任何非空字符串和非零的数值转换为true将空字符串、0,NaN、underfined和null转化为false。
(2)转数值型:通过Number()函数、parseInt()函数或parseFloat()函数对参与运算的数据进行转换,保证数据都是数值型数据。值得一提的是,转数值型的函数在使用时有一定的区别:
待转数据 | Number() | parseInt() | praseFloat() |
---|---|---|---|
纯数字字符串 | 转成对应的数字 | 转成对应的数字 | 转成对应的数字 |
空字符串 | 0 | NaN | NaN |
数字开头的字符串 | NaN | 转成开头的数字 | 转成开头的数字 |
非数字开头的字符串 | NaN | NaN | NaN |
null | 0 | NaN | NaN |
undefined | NaN | NaN | NaN |
false | 0 | NaN | NaN |
true | 1 | NaN | NaN |
二.流程控制
1.选择结构
(1)单分支语句
if(age >= 18){
console.log('已成年');
}
(2)双分支语句
if(age >= 18){
console.log('已成年');
}else{
console,log('未成年');
}
(3)多分支语句
if(score >= 90){
console.log('优秀');
}else if(score >= 80){
console.log('良好');
}else if(score >= 70 ){
console.log('中等');
}else if(score <=60){
console.log('及格');
}else {
console.log('不及格');
}
2.循环结构
(1)while语句
var num=1;
while(num <= 100){
console.log(num);
num++;
}
(2)do while循环语句
var num=5;
do{
console.log(num);
num--;
}while(num > 3);
(3)for循环语句
for(var i=0;i<5;i++){
console.log('*');
}
3.跳转语句
常用的跳转语句有break和continue语句。
break语句可应用于switch语句和循环语句中,作用是终止当前语句的执行,跳出switch选择结构或循环结构,执行后面的代码,而continue语句用于结束本次循环的执行,开始下一轮循环的执行操作。
三.数组
1.数组的创建
var arr1=[2,5,6]; //定义时直接给数组元素赋值
var arr2=[]; //定义一个空数组
var arr3=new Array(); //定义一个空数组并通过索引来赋值
arr3[0]=1;
arr3[3]="abc";
2.数组的基本操作
(1)获取数组的长度:
var arr1=[78,88,98];
var arr2=['a', , , ,'b','c'];
console.log(arr1.length);//输出结果为3
console.log(arr2.length);//输出结果为6
3.数组的访问与遍历
(1)访问数组元素:若想要查看数组中某个具体的元素,可以通过“数组名[下标]”的方式获得指定的值。
<script>
var arr=['hello','JavaScript',22.48,true];
console.log(arr[0]);
console.log(arr[2]);
console.log(arr);
</script>
(2)遍历数组元素:通常情况下,利用下标遍历数组可以使用for或for…in语句。
for(variable in object){...}
上述语法中,for…in中的variable指的是数组下标,object表示数组的变量名称,除此之外,object还是一个对象,for…in还可以用于对象的遍历。
在ES6中,新增了一种for…of方法:
var arr=[1,2,3];
for(var value of arr){
console,log(value);
}
在上述代码中,变量value表示每次遍历时对应的数组元素的值,arr表示待变历的数组,代码执行后,可以在控制台中一次输出1,2和3.
4.元素的添加和修改
(1)添加元素
var height=[];
hright[5] =183;
height[0] =175;
height[3] =150;
console.log(height);//输出结果:(6) [175,empty*2,150,empty,183]
//为非空数组添加元素
var arr=['Asa','Taylor'];
arr[2] ='Tom';
arr[3] ='Jack'; //输出结果:(4) ["Asa","Taylor","Tom","Jack"]
console.log(arr);
(2)修改元素:修改i元素与添加元素的方式相同,不同的是修改元素是为已含有值的元素重新赋值。
var arr=['a','b','c','d'];
arr[2]=123;
arr[3]=456;
console.log(arr);//输出结果:(4) ["a","b",123,456]
(3)元素的删除:可以用delete关键字删除该元素的值
var stu =['Tom','Jimmy','Luck'];
console.log(stu);//输出结果:(3) ["Tom","Jimmy","Luck"]
delete stu[1];//删除第二个元素
console.log(stu);//输出结果:(3) ["Tom","Luck"]
由上述代码可知,delete关键字只能删除数组中制定下标的元素值,删除后该元素依然会占用一个空的存储位置。
3.常见二维数组操作
(1)创建与遍历
//使用Array对象创建数组
var info =new Array(new Array('Tom',13,155),new Array('Luck'.11,152));
var arr= new Array(new Array,new Array);
//使用“[]”创建数组
var num=[[1,3],[2,4]];
var empty =[[],[]];
4.数组排序
(1)冒泡排序:
<script>
var arr=[10,2,5,27,98,31];
console.log('待排序数组:'+arr);
for(i=;i<arr.length;i++){
for(j=0;j<arr.length-i;j++){
if(arr[j]>arr[j+1]){
[arr[j],arr[j+1]]=[arr[j+1],arr[j]];
}
}
}
console.log('排序后的数组:'+arr);
</script>
(2)插入排序:
<script>
var arr=[89.56,100,21,87,45,1,888];
console.log('待排序数组:'+arr);
for(var i=1;i<arr.length;i++){
for(var j=i;j>0;j--){
if(arr[j-1]>arr[j]){
[arr[j-1],arr[j]]=[arr[j],arr[j-1]];
}
}
}
console.log('排序后的数组' +arr);
</script>
5.常见的数组方法
(1)栈和队列方法:
方法名 | 功能描述 |
---|---|
push() | 将一个或多个元素添加到数组的末尾,并返回数组的新长度 |
unshift() | 将一个或多个元素添加到数组的开头,并返回数组的新长度 |
pop() | 从数组的末尾移除并返回一个元素,若是空数组则返回undefined |
shift() | 从数组的开头移出并返回一个元素,若是空数组则返回undefined |
方法名 | 功能描述 |
---|---|
includes() | 用于确定数组中是否含有某个元素,含有返回true,否则返回false |
Array.isArray() | 用于确定传递的值是否为一个Array,是返回true,否则返回false |
IndexOf() | 返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1 |
lastIndexOf() | 返回指定元素在数组中的最后一个索引,如果不存在则返回-1 |
方法名 | 功能描述 |
---|---|
join() | 将数组中的所有元素连接到一个字符串中 |
toString() | 返回一个字符串,表示指定的数组及其元素 |
方法名 | 功能描述 |
---|---|
sort() | 对数组的元素进行排序,并返回数组 |
fill() | 用一个固定值填充数组中指定下标范围的全部元素 |
reverse() | 颠倒数组中元素的位置 |
splice() | 对一个数组在指定下标范围内删除或添加元素 |
slice() | 从一个数组的指定下表范围内拷贝数组元素到一个新数组中 |
concat() | 返回一个合并两个或多个数组后的新素组 |