ECMAScript es6 基础

es是js的标准

js是es的实现

浏览器对新标准的支持


let 与 块级作用域

let与var是一样的用来声明变量,不同的是let声明的变量只能作用于块级作用域

块级作用域:

  1.                    除了对象的字面量声明,其他的花括号(if,for。。。)或者一个单独的花括号,都是块级作用域
  2.                    块级作用域可以嵌套
  3.                    里面的可以访问外面的变量,但是外面不能访问里面。与作用域有关

-----var声明的变量不受块级作用域的影响

------使用let或const声明的变量不能重新声明

-------let不存在变量提升(不能再声明前使用变量(var可以,只不过输出的是undefine))

如果在块级作用域中存在let或const声明的变量。他会形成一个封闭的作用域。即使上面的作用域存在同名变量也是

拿不到的,这就是暂存死区,会报错。

===============================================================================

let和const是在es6中,新增加的关键字。用于声明变量和常量。

    let声明的变量,只在他声明的块级作用域中起作用

    const声明的是只读常量,一旦声明不能修改

加一个自我执行的匿名函数后,i是作为参数传递进去的,所以他的值不是最终值,是每次循环的值

 

for循环比较特殊,每次循环都是一个全新的独立的块级作用域。所以用let声明的变量,在当前循环中的值

不会发生改变。所以输出的是每次的值。

-------------------------------------------------------------------------------------------------------------------------

const 声明的是常量,在声明时就赋值,后续不能改变。

与let类似,也只在块级作用域中生效

 

 

--------------------------------------------------------------------------------------------------------------------

变量的解构赋值

===================================

数组的解构赋值               解构赋值     将数组或对象中的值,提取到不同的变量中

如果只想要其中的一项,其他的位置就要空出来,但是逗号不能省略

更复杂的规则也是一样的,比如我们想要取得 7 这个数字,只需要按照规则则写一遍,不要的空出来。要的给一个新变量就可以

let [ , ,[ , ,[ , ,a]]] = arr;

 

扩展运算符(...),合并数组,还能将剩余的以数组方式赋值给变量。         显然也是es6规范才能用

在每个数组前 加三个点 就可以实现数组的合并

...c 会将剩下的所有参数作为数组,赋值给c

 

匹配不到的时候就会将undefined 赋值给变量 或者常量    let 和 const都能进行解构赋值

可以给他一个默认值   当没有匹配到undefined时   就给他赋这个默认值       null的话不会

如果函数返回的是一个数组,那么我们就可以对这个数组进行解构赋值

例如返回数组  [true,{name:'xiaoming',age:12},'success']

使用解构赋值    const [success,data,info] = 函数();返回值就会从数组中,保存到我们的变量中。

能够对数组进行解构赋值

========================================================================

对象的解构赋值

与数组解构赋值类似   只不过两边都是对象结构

对象解构,变量名要与属性名保持一致     因为他是根据属性名去匹配的。

找不到返回 undefined     ,数组根据下标,对象用属性名匹配

对象的解构赋值 可以 嵌套数组的 解构赋值,只要保持结构一样就可以

方法就在于保持解构一致,  数组看下标,对象看属性

const和let都不能重复声明

对象的解构中,会存在属性名重复的情况。由于let和const都不允许重复声明,所以会报错。

给对象属性后面加冒号:起一个新的变量名     就会将那个变量名代表的变量值,赋值给新变量

剩余的值会作为对象,赋值给 oth  ,这就是扩展运算符在 对象解构中的用法。上

 

合并对象

对象解构也一样   匹配不到或者匹配到undefined 可以给他一个默认值

对象的解构 可用于函数参数地传递。

如果一个函数的参数时一个对象,我们最终想要用的就是对象中的属性值。那么在参数位置,就可以对对象进行解构。

然后在函数内部使用。

也叫做:使用对象传入乱序的函数参数。因为与位置无关。

 

获取多个函数返回值。  函数返回的是对象,对 对象进行解构赋值。

=============================================================

字符串解构赋值

把每一个字符 都 解构出来,如果用扩展运算符   会将剩余的字符 以字符数组的形式,赋值给oth

可以用于分解字符串啊 哈哈哈                   直接 ...oth

可以提取字符串的属性

============================================================

数值 与 布尔值的 解构赋值

==================================================

函数参数的解构赋值

 

解构赋值  我觉的最有用的地方就是 函数参数的解构赋值

以及我们接受到数据时,,对数据的解构赋值


es6 扩展

===========================================================

模板字符串

使用 反引号 (`)包起来的就是模板字符串,可以直接用 ${ } 将我们的值 拼接到字符串中,而不用使用+ 拼接

1.使用模板字符串,可以不用字符串拼接。直接${}就可以放在字符串中。

模板字符串可以直接换行 不需要再末尾进行转义

反引号 模板字符串

=============================================================

字符串 部分新方法

1.字符串补全方法

    padStart :向前面补充字符串

    padEnd  :向后面补充字符串

接收两个参数,第一个参数指补全的个数(加上原有的,一共是多少个。不是从0数的,是总数)。第二个参数可以是任何类型。

2.repeat  重复  复制字符串

join方法用于将数组 转换成字符串。数组项之间用什么分割,是join参数指定的。如果是空字符串,数组中的内容就会连在

一起。      如果是一个字符串 str,那么就会以str 分割每项。。。。如果每项都是空字符串,并且有三项。那么拼接处是两

用一个字符串分隔拼接后,就相当于把分隔字符串连在了一起。

3.startsWith   endsWith  判断字符串是否以某字符串开头 或 结尾   返回值 布尔


1、在块级作用域中 用 let 和 const声明变量,会形成封闭作用域。与外边没关系。

 

2、let 和 const 声明的变量不存在变量提升,不能再声明之前调用。

 

3,let声明的变量  只在自己的块级作用域中起作用,验证了  1   。const声明的是常量,在后面不能修改。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值