ES6的语法

Wesley13
• 阅读 505

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

在js一直有一个bug是var:

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

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

2、var 没有块级作用域

var name2 = 'jjjon'; { var name2 = 'tom'; } console.log(name2); //tom

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

var name3 = 'jond'; var age = 18; var name3 = 19; var name3 = 'rose'; console.log(name3); //rose

新的定义变量let:

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

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

2、let存在块级作用域

let name5 = '222'; { let name5 = ' ttt'; } console.log(name5);  //222

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

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

二,const 声明一个常量

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

1、值不能再改变 

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;     //值不能改变,否则报错
}

2、常量具有块级作用域

{ const ban = "vin"; } console.log(ban); //报错

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

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

4、不能声明同名的常量

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

const bb; //报错

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

const obj = { na:"jjjj", age:20 }; console.log(obj.na);  //jjjj obj.na = "ccs"; console.log(obj.na);  //ccs

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

// var path = 1122 // var path = '1243'; const path = 'path'; console.log(path);  //path

三,字符串的扩展

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

var str = 'hello word'; var result = str.indexOf('word'); console.log(result);  //6

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

var bool = str.includes('word'); console.log(bool); //true

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

var bool2 = str.startsWith('hello'); console.log(bool2); //true

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

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

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

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

var str322= '我爱我家,\n'; console.log(str322.repeat(3)); //3行 我爱我家,

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

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

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

// 最原始函数 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));

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
2年前
ES6 简单整理
1.变量声明let和constlet与const都是块级作用域,letfunctionname(){letage12;//age只在name()函数中存在}constconstname'tom'name'jack'//
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Django 学习 之 模板(html)与配置静态文件
一.模板(html)1.模板语法之变量:语法为{{}}在Django模板中遍历复杂数据结构的关键是句点字符,语法:{{var\_name}}var\_name是一个变量名称,需要和views文件retu
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这