Rumah > hujung hadapan web > tutorial js > ES6的语法详解

ES6的语法详解

巴扎黑
Lepaskan: 2017-09-11 11:48:32
asal
3758 orang telah melayarinya

一,定义变量let(类似var)

在js一直有一个bug是var:

1、var 声明的变量会有变量提升


1

console.log(name);  //jhonvar name = 'jhon';

Salin selepas log masuk

2、var 没有块级作用域


1

2

3

4

var name2 = 'jjjon';

{    var name2 = 'tom';

}

console.log(name2);     //tom

Salin selepas log masuk

3、var 可以多次重复定义一个变量,后面的变量替换前面变量


1

2

var name3 = 'jond';var age = 18;var name3 = 19;var name3 = 'rose';

console.log(name3);     //rose

Salin selepas log masuk

新的定义变量let:

1、let声明的变量不会有变量提升,只有在前面定义了在后面才能用


1

console.log(name4);     //报错let name4 = '1112';

Salin selepas log masuk

2、let存在块级作用域


1

2

3

4

5

let name5 = '222';

{

    let name5 = ' ttt';

}

console.log(name5);  //222

Salin selepas log masuk

3、let不能多次重复定义一个变量


1

2

let name6 = 'aa';

let name6 = 'bb';    //报错console.log(name6);  //aa

Salin selepas log masuk

二,const 声明一个常量

常量:指的是不会改变的数据

1、值不能再改变 


1

2

3

4

5

6

7

const pi = 3.01415;//pi = 3;     //报错

    {

        const arr = [5,6,8,9,];

        arr.push(7);

        console.log(arr);  //(5) [5, 6, 8, 9, 7]

        arr = 10;     //值不能改变,否则报错

    }

Salin selepas log masuk

 

2、常量具有块级作用域


1

2

3

4

{

    const ban = "vin";

}

console.log(ban);     //报错

Salin selepas log masuk

3、没有变量提升,先声明后使用


1

console.log(ba);     //报错const ba = 'liu';

Salin selepas log masuk

4、不能声明同名的常量

5、一定要赋初始值,否则报错


1

const bb;     //报错

Salin selepas log masuk

6、如果声明的是对象,对象的地址不能改变,但是可以改变其内部的属性


1

2

3

4

5

const obj = {

    na:"jjjj",

    age:20};

console.log(obj.na);  //jjjjobj.na = "ccs";

console.log(obj.na);  //ccs

Salin selepas log masuk

 

 例如:应用场景,固定的地址就可以用常量


1

2

// var path = 1122// var path = '1243';const path = 'path';

console.log(path);  //path

Salin selepas log masuk

 

三,字符串的扩展

1、判断字符串"hello word"是否存在"word"


1

2

var str = 'hello word';var result = str.indexOf('word');

console.log(result);  //6

Salin selepas log masuk

 2,ES6提供includes():返回布尔值,用于判断字符串是否包含某些字符


1

2

var bool = str.includes('word');

console.log(bool);    //true

Salin selepas log masuk

3,startsWith(str[,num]):返回布尔值,用于判断字符串是否以某个字符开头


1

 bool2 = str.startsWith('hello'

Salin selepas log masuk

//给这个方法传入2个参数
var bool3 = str.startsWith('word',6);
console.log(bool3);  //true

4,endsWith(str[,num]):返回布尔值,用于判断字符串是否以某些字符结尾


1

2

3

var bool4 = str.endsWith('d');

console.log(bool4);  //true//给这个方法传入两个参数var bool5 = str.endsWith('o',7);

console.log(bool5);  //false

Salin selepas log masuk

5,repeat(num):传入数字,这个方法将字符串重复数字对应次数


1

2

var str322= '我爱我家,\n';

console.log(str322.repeat(3));        //3行 我爱我家,

Salin selepas log masuk

 

四, 5.0模板语法 :`模板字符串`


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

var obj33 = {

    name:'zhuzhu',

    age:18,

    sex:'男',

    hobby:'女',

    veight:120,

    height:180};// 字符串拼接方法var str4 = '大家好,我叫:'+obj33.name+',今年'+obj33.age+',性别'+obj33.sex+',爱好'+obj33.hobby+'。';

console.log(str4);        //大家好,我叫:zhuzhu,今年18,性别男,爱好女。// 但是字符串的拼接太麻烦了,有没有简单的方法来解决这个问题呢,有的,模板字符串就可以了var temp111 = `大家好,我叫${obj33.name},今年${obj33.age},性别${obj33.sex},爱好${obj33.hobby}`;

console.log(temp111);    //大家好,我叫zhuzhu,今年18,性别男,爱好女//1,可以是变量let name8 = "美女";

let temp22 = `我叫${name8}`;

console.log(temp22);    //我叫美女// 2,可以是方法function getName(){    return "宝宝";

}

let temp3 = `我叫${getName()}`;

console.log(temp3);        //我叫宝宝// 3,可以是表达式let aa = 1 ;

let bb = 2;

let temp4 = `a + b=${aa+bb}`;

console.log(temp4);        //a + b=3

Salin selepas log masuk

 

五,6.0箭头函数:()=>{}


1

2

3

4

5

// 最原始函数var arr = [2,3,5,7];

 $(arr).each(function(index,item){

   console.log(item);

 }); // 箭头函数改造// 改造一:匿名函数中的funtion关键字我们可以省略,参数与方法体之间中=>$(arr).each((index,item)=>{console.log(item);})

 // 改造二:如果方法体中的代码只有一句我们可以去掉{},并且代码结尾的分号要去掉$(arr).each((index,item) =>console.log(item));

Salin selepas log masuk

Atas ialah kandungan terperinci ES6的语法详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan