ES6基础语法

野性酷女 2022-12-06 12:42 328阅读 0赞
(1)变量定义let

let和var的区别

  1. <SCript>
  2. {
  3. var a = 123;
  4. let b = 123;
  5. }
  6. console.log(a);
  7. console.log(b); //错误
  8. </SCript>

1:作用域不一样bai,var是函数作用域,而let是块作用域,也就是说,在主函数内声明了var,整个函数内都是有效的,比如说在for循环内定义了一个var变量,实际上其在for循环以外也是可以访问的,而let由于是块作用域,所以如果在块作用域内(比如说for循环内)定义的变量,在其外面是不可被访问的,所以let用在for (let i; i < n; i++)是一种很推荐的写法

  1. let不能在定义之前访问该变量,但是var是可以得。也就是说,let必须是先定义,再使用,而var先使用后声明也行,只不过直接使用但是没有却没有定义的时候,其值为undefined,这块要注意,这一块很容易出问题,这也是个人认为的let比var更好的地方,至于为啥会有这种区别呢,实际上var有一个变量提升的过程。也就是说,当这个函数的作用域被创建的时候,实际上var定义的变量都会被创建,并且如果此时没有初始化的话,则默认会初始化一个undefined。
  2. let不能被重新定义,但是var是可以的。这个呢,我个人认为,从规范化的角度来说,是更推荐的,比如说,你在前面声明了一个变量,后来写代码,因为忘了之前的代码逻辑,又声明了一个同名的变量,如果这俩变量逻辑不一样,并且后面都要用的话,很容易出问题,且不容易维护。

总之呢,let从规范化的角度来说,要比var要进步了很大一步。所以一般情况下的话,推荐用let,const这些。

(2)解构

1、数组解构

  1. //传统
  2. let a = 1, b = 2, c = 3;
  3. console.log(a,b,c)
  4. //ES6
  5. let [x,y,z]=[1,2,3]
  6. console.log(x,y,z)

2、对象解构

  1. let user={ name:'LISI',age:12};
  2. //传统
  3. let name1=user.name;
  4. let age1=user.age;
  5. console.log(name1,age1)
  6. //ES6
  7. let { name,age}=user;
  8. console.log(name,age);
(3)模板字符串
  1. <SCript>
  2. //1、使用`符号实现换行
  3. let str1=`AAA BBB`
  4. console.log(str1)
  5. //2、在`符号里面使用表达式获取变量值
  6. let name ="Bom"
  7. let age=11
  8. let str2=`姓名,${ name},年龄,${ age}`
  9. console.log(str2)
  10. //3、在`符号中调用方法
  11. function f1(){
  12. return "HELLO";
  13. }
  14. let str3=`call , ${ f1()}`
  15. console.log(str3)
  16. </SCript>
(4)声明对象编写
  1. <SCript>
  2. const age = 12
  3. const name = "Tom"
  4. //传统写法
  5. const p1={ name:name,age:age}
  6. console.log(p1)
  7. //ES6
  8. const p2={ name,age}
  9. console.log(p2)
  10. </SCript>
(5)方法简写

不需要写:function

  1. <SCript>
  2. //传统
  3. const p1 = {
  4. hello: function () {
  5. console.log("AAAAA")
  6. }
  7. }
  8. //ES6
  9. const p2 = {
  10. hello() {
  11. console.log("BBBB")
  12. }
  13. }
  14. p1.hello()
  15. p2.hello()
  16. </SCript>
(6)对象拓展运算符

拓展运算符{…}用于取出参数对象所有可便利属性然后拷贝到当前对象

  1. <SCript>
  2. //对象拷贝
  3. let p1 = { name: "lisi", age: 11 }
  4. let pc1 = { ...p1 }
  5. //注意:该语法在低版本浏览器会报错
  6. console.log(pc1)
  7. //合并对象
  8. let name = { name: "Tim" }
  9. let age = { age: 15 }
  10. let pc2 = { ...name, ...age }
  11. console.log(pc2)
  12. </SCript>
(7)箭头函数

箭头函数提供了一种更加简洁的函数书写方式,基本语法是
参数=>函数体

1:当箭头函数没有参数或者有多个参数,要用()括起来
2:当箭头函数函数体有多行语句,用{}括起来,表示代码块
3:当只有一行语句,并且需要返回结果时,可以省略{},结果会自动返回

  1. <SCript>
  2. //传统
  3. let f1 = function (a) {
  4. return a
  5. }
  6. console.log(f1(1))
  7. //ES6,单个参数
  8. let f2 = a => a + 1
  9. console.log(f2(1))
  10. //ES6,多个参数
  11. let f3 = (a,b) => a + b
  12. console.log(f3(1,2))
  13. //ES6 ,多行代码
  14. let f4=(a,b)=>{ ++a;++b; return a+b }
  15. console.log(f4(1,2))
  16. </SCript>

发表评论

表情:
评论列表 (有 0 条评论,328人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6基础语法----解构

    目录 解构 1.数组解构 等号左边的变量放到中括号内部,匹配右侧数组中的元素。 2.对象解构 3 字符串解构 4数值解构 可以获取到数值包装器构造函数原型中指定的方

    相关 Es6语法

    1.var要比let的位高,作用域要大 2.let的作用范围很小很小 3.若果在函数内定义一个var变量,在函数外是不能被访问的. function user()

    相关 1.es6基础语法

    啦啦啦,终于可以忙里偷闲学学其他东西。在工作的两个多月里,从对微信小程序一概不知到可以熟练调用其API和布局样式还是很有收获的。大佬昨天问我“你觉得有什么收获,是不是前端已经没