# es6 声明变量六种方法

es6 学习笔记(1):

  • var
  • function
  • let
  • const 必须初始化
  • import
  • class

const : const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。

let const 声明的不在window属性中

var a=1
let b=2
const c=3
console.log(window.a);//1
console.log(window.c);//undefined
console.log(window.b);//undefined

# 解构赋值

  1. ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效。
let [x = 1] = [null];
x // null

# 字符串

  1. ES6 为字符串添加了遍历器接口,可以使用for...of循环遍历
    • includes(): 找到返回true
    • startWith(): 字符串是否在原字符串的头部
    • endWith(): 字符串是否在原字符串的尾部
  2. repeat() 重复
'hello'.repeat(2)//'hellohello'
'na'.repeat(2.8)//'nana'
  1. padStart(),padEnd() 如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
'xxx'.padEnd(2, 'ab') // 'xxx'
'x'.padStart(4) // '   x' 没有第二个参数用空格补全
//用途
'1'.padStart(2,'0') //日期补0 1=>01
'1'.padStart(10, '0') // "0000000001" 用途补全数值
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
  1. 模板字符串
`Hello ${'World'}`  //${}放变量或者任意的js表达式,还能调用函数 可嵌套
// "Hello World"