JavaScript < ES5、ES6、ES7、… >

JavaScript基本语法

2019-04-16  本文已影响0人  风暴java之灵

常见的输出方式

  1. 如果输出的内容不是数字,就需要用引号括起来
  2. 区分大小写
  3. 每条代码写完都必须写 ; ,否则系统会自动添加,影响浏览器的性能

JavaScript常量

  1. 整型常量
  2. 实型常量
  3. 字符串常量
  4. 布尔常量
  5. 自定义常量 格式 const 变量名称 = 内容;

JavaScript变量

关键字和保留字

关键字: 具有特殊意义的单词,并且不能用作变量名、函数名等。关键字严格区分大小写
保留字: 现在不是关键字,但是将来的版本可能会被定义为关键字的单词。

标识符

自己命名的函数名称,变量名称等被称为标识符。
标识符的命名规则: 只能由英文字母数字、“$”组成. 严格区分大小写,不能为关键字和保留字
标识符命名原则:见名知意 , 用驼峰命名法.

注释

行注释://注释的内容
块注释: /*注释的内容 */

//这是注释的内容
/* function(){   //这是块注释
   console.log(123);
 }
*/

数据类型

let  type = typeof  数据;
console.log(type);

数据类型转换

let num = 123 ;
let str = num.toString();//通过.toString()转换
let str1 = String(num); //通过String(); 转换
let str2 = num + "";  //通过第三种方法转换  推荐使用这种方法
let str3 =123 + "";
let str = "123" ;
let num = Number(str); //返回123
let num1 = - str;//返回  -123 
let str1 = "123.3";
let num2 = parseInt(str1); //返回123
let num = 123;
let buer = Boolean(num); //结果为true

流程控制

if(条件表达式)  {
      条件满足执行的语句 ;
}
  1. if的第二种格式
if(条件表达式)  {
      条件满足执行的语句 ;
} 
else(条件表达式2) {
条件满足执行的语句 ;
}
  1. if的第三种格式
if(条件表达式)  {
      条件满足执行的语句 ;
} 
else if(条件表达式1) {
条件满足执行的语句 ;
}
...   ...
else(条件表达式) {
条件满足执行的语句 ;
}

注意点:

  1. ; 也是语句
  2. 如果条件满足执行的语句只有一条, 那么该处的大括号可以省略不写
  3. if可以嵌套使用
  4. 如果if省略大括号,那么ifelse/else 会就近和没有使用的if相匹配
switch (条件表达式){
       case 表达式1:
                 语句1;
                 break;
       case 表达式2:
                 语句2;
                 break;       
       case 表达式3:
                 语句2;
                 break;
...  ...
       default :
               语句;
                break;
}

注意点:

  1. 条件表达式和表达式均可以是变量,表达式和常量
  2. case判断为===,会同时判断值和类型.
  3. 当其中一个case被匹配时,后面的case和default都会失效.
  4. default可以写在任意位置,但是都会最后才判断
while(条件表达式){//表达式结果为真时执行
     循环语句;
}

注意: while语句可以一次都不执行

do{
循环语句;
}while

注意: dowhile语句最少执行一次

for(初始化表达式;条件判断语句;循环后增量表达式){ 
         循环语句;
}
//注意:初始化表达式,条件判断语句,循环后增量表达式都可以不写,此时默认条件为真

局部变量和全局变量

在{}里面定义的变量叫局部变量,在{}外面定义的叫全局变量
注意: 通过var定义的变量不区分局部和全局变量

break关键字和continue关键字

break的作用是结束整个循环,break后面不能写语句,因为不会执行
continue的作用是结束本次循环,continue后面也不能写语句

数组

  1. let 数组名称 = new Array(数组大小); 或者 let 数组名称 = new Array();
  2. let 数组名称 = new Array(数据,数据1,数据2,...);
  3. let 数组名称 = [数组大小]; 或者 let 数组名称 = [];
  4. let 数组名称 = [数组1,数值2,数值3,..];
    注意点:
  5. 数组储存的数据类型可以不一样
  6. 数组的容量不足时 会自动扩充
  7. 数组分配的存储空间不一定连续的,在浏览器中如果数据类型相同会尽量分配连续的空间,如果数据类型不一样,那么就不会分配连续的空间..
  8. 访问了未定义的索引,不会报错,会返回undefined.
let arr = [];   //定义数组
for(let i = 0;i < arr.length;i++){ //通过for循环遍历
  console.log(arr[i]);
}
let arr =[1,3,5];
let [a,b,c] = arr;
console.log(a,b,c);//结果为 a保存的值为1,b保存的值为3,c保存的值为5

数组的解构中等号格式两边完全一样才能完全解构

let [a,b,c] =[1,3,5]; //完全解构

数组解构时,左边的个数可以比右边少(左边有多少个就解构多少个,其余的不接收)

let arr =[1,3,5];
let [a,b] = arr;  // 结果为a保存的值为1,b保存的值为3

数组解构时,右边的个数可以比左边少(右边有多少个就解构多少个,其余的数为undefined)

let arr =[1,3];
let [a,b,c] = arr;  // 结果为a保存的值为1,b保存的值为3,c保存的值为undefined

数组解构时,左右个数不一样,可以给左边设定默认值,右边有的数据会把默认值覆盖

let arr =[1,3];
let [a=10,b=100,c=666] = arr;  // 结果为a保存的值为1,b保存的值为3,c保存的值为666

数组解构时,可以通过ES6新增的扩展运算符 ... 打包剩余的数据
注意点: 扩展运算符只能写在最后一个变量之前

let arr =[1,3,5,7];
let [a,b,...c] = arr;  // 结果为a保存的值为1,b保存的值为3,c保存的为数组[5,7]
let arr =[1,3,5];
arr[2] = 10;  
console.log(arr); // 结果为arr=[1,10,5]

改变数组中某几个连续的元素的值可以用splice()方法

let arr =[1,3,5,8,7];
arr.splice(1,2,"a","b");//第一个参数表示从哪个索引开始替换,第二个参数表示替换几个,第三个参数开始表示替换的内容
console.log(arr);//结果为 arr=[1,"a","b",8,7]

在数组的最后添加一个或多个元素可以用push()方法,该方法会返回添加元素之后数组的总长度

let arr =[1,3,5];//在最后添加一个元素
let length = arr.push("a"); 
console.log(arr); // 结果为arr=[1,3,5,"a"]
console.log(length);//结果为4
let arr =[1,3,5]; //在后面添加两个元素
let length = arr.push("a",2); 
console.log(arr); // 结果为arr=[1,3,5,"a",2]
console.log(length);//结果为4

在数组的最前面添加一个或多个元素可以用unshift()方法,该方法会返回添加元素之后数组的总长度

let arr =[1,3,5];//在最后添加一个元素
let length = arr.unshift("a"); 
console.log(arr); // 结果为arr=["a",1,3,5]
console.log(length);//结果为4
let arr =[1,3,5];//在前面添加两个元素
let length = arr.unshift("a",2); 
console.log(arr); // 结果为arr=["a",2,1,3,5]
console.log(length);//结果为5

删除数组中最后一个元素 用pop();方法 该方法会返回被删除的元素

let arr =[1,3,5];//删除最后一个元素
let str = arr.push(); 
console.log(arr); // 结果为arr=[1,3]
console.log(str);//结果为5

删除数组中第一个元素 用shift();方法 该方法会返回被删除的元素

let arr =[1,3,5];//删除最后一个元素
let str = arr.shift(); 
console.log(arr); // 结果为arr=[3,5]
console.log(str);//结果为1

删除索引为2的元素 用splice();方法

let arr =[1,3,5];
arr.splice(2,1);//参数1:从什么位置开始删除 参数2:删除多少个
console.log(arr);//结果为 arr=[1,3]
 let arr = [1,2,3,3,4];    
        //arr = [];  //方法1
        //arr.length = 0;  //方法2 
        arr.splice(0,arr.length); //方法3
        console.log(arr);//结果返回空数组

拼接数组 两种方法 一种concat()方法,一种用扩展运算符(生成新数组,原数组不受影响)

let arr =[1,3,5];
let arr2 = [2,4];
let arr3 = arr.concat(arr1);
console.log(arr3); //结果为 [1,3,5,2,4];
let arr =[1,3,5];
let arr2 = [2,4];
let arr3 = [...arr,...arr1]; //推荐使用这一种
console.log(arr3); //结果为 [1,3,5,2,4];

截取数组中的某一段,用 slice();方法

let arr =[1,3,5,7,9];
let arr2 = arr.slice(1,4);//包左不包右,包括开头的索引,但不包括结束的索引
console.log(arr2);//结果为[3,5,7]

将数组转换为字符串

let arr =[1,3,5];
let arr2 = arr.toString();
console.log(arr2);//结果为1,3,5 
console.log(typeof arr2);// 结果为string

将数组转换为指定格式的字符串,用join()方法.

let arr =[1,3,5];
let arr2 = arr.join("*"); 不传递参数就是默认调用arr.toString()方法,传递参数后会将参数作为元素和元素的连接符号
console.log(arr2);//结果为1*3*5 
console.log(typeof arr2);// 结果为string

查找某个元素的索引 用indexOf();方法

let arr =[1,3,5];
let a = arr.indexOf(3); //默认从左向右查找,找到立即停止,找不到返回-1
console.log(a);//结果为1
let arr =[1,3,5];
let a = arr.lastIndexOf(3); //默认从右往左查找,找到立即停止,找不到返回-1
console.log(a);//结果为1
let arr =[1,3,5,6,3];
let a = arr.indexOf(3,2); //查找3,从索引2开始查找
console.log(a);//结果为4

判断数组是否包含某个元素 用includes();方法(包含返回true 否则返回false) 或者用indexOf();

let arr =[1,3,5];
let a = arr.includes(3);
console.log(a);//结果为true
let arr = [[1,3],[2,4],[3,5]]; //二维数组
let arr1 = arr[0]; //获取二维数组的第一个元素
console.log(arr1); //结果 [1,3]
let arr11 = arr[1][1]; //获取二维数组中的第二个元素的第二个元素
console.log (arr[1][1]); //结果 4

遍历二维数组

let arr = [[1,2],[3,4],[5,6]];
for(let i = 0;i <arr.length;i++){
        let arr1 = arr[i];
      for(let j =0;j <arr1.length;j++) {
         console.log(arr1[j]);
        }
}
上一篇 下一篇

猜你喜欢

热点阅读