JS(第二十四课)JS高级Es6语法

简介: JS(第二十四课)JS高级Es6语法

ECMAScript 6_百度百科 (baidu.com)

第一部分:百度简介

ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言 [1]  。


另外,一些情况下ES6也泛指ES2015及之后的新增特性,虽然之后的版本应当称为ES7、ES8等。

这又是ES6 JS高级Es6语法

1  let变量名的基本内容解释

  1. 1 变量不能重复的声明
  2. 2 块级的作用域  全局 函数 evel 只在代码块中有效
  3. 3 不存在变量的提升
  4. 4 不影响的作用域链的效果

1 声明变量的格式

  let a;
  let b,c,d;
  let f=567,g="liveyou",h=[];

2 块级的作用域  全局 函数 evel 只在代码块中有效

 {
     let  gair="李四"
     // console.log(gair)
 }
console.log(gair)

3 不存在变量的提升

 console.log(aaa)
 var aaa="先鸟";
 let aaa="先鸟"

4 不影响的作用域链的效果

 {
     let school="上高速"
     function fn(){
         console.log(school)
     }
     fn()
 }

2   const 常量

  • 1 一定要有初始值
  • 2 一般常量用大写
  • 3 常量的值不能修改
  • 4 const 也是块级作用域
  • 5 对于数组和对象的元素修改 不算对常量的修改 不会报错
  const SCHOOL = "我要上高速"
  const TEAM = ['UZR', 'MXLG', 'MING', 'LETME'];
  // TEAM.push('Meiko')
  console.log(TEAM)

3 数组解构

 <!-- 数组解构-->
 <!--! ES6按照一定的模式从数组对象中提取值 对变量赋值  这被称为解构赋值-->
 <!-- !数组结构 -->
 <script>
     const F4=['A','B','C','D','E']
     let [a,b,c,d,e]=F4
     console.log(a+b+c+d+e)
 </script>
 <!-- !对象的结构 -->
 <script>
     const zhaomienan={
         name:"静态",
         age:'89',
         eat:function(){
             console.log("吃饭")
         },
         sleep:function(){
             console.log("睡觉吧")
         }
     };
     let {name,age,eat,sleep}=zhaomienan;
     console.log(name+"_"+age+"_"+eat+"_"+sleep)
     eat()
     sleep()
 </script>

4 模板字符串[``]

  // 声明
  let str=`我是字符串的内容解析`
  console.log(str,typeof str)
  // 内容直接有换行符
  let str1=`<ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      </ul>`
  // document.write(str1)
  // 变量的直接拼接
  let lover='上述'
  let out=`${lover}是我心中的偶像`
  console.log(out)

5 对象的简化写法

 <script>
     let name = "李四玩有幸"
     let change = function () {
         console.log("我可以改变你的内容信息")
     }
     const school = {
         // name:name
         name,
         change,
         imporve: function () {
             console.log("我深蓝了")
         },
         eat() {
             console.log("Hellow word")
         }
     }
     console.log(school)
 </script>

6 箭头函数

  • 1 this 是静态的  始终指向函数声明的作用域下的this 的值
  • 2 不能作为构造函数 实例化对象
  • 3 不能使用arguments对象
  • 4 箭头函数的简写      省略()有且只有一个
  • () => {} //():代表是函数; =>:必须要的符号,指向哪一个代码块;{}:函数体
 <script>
     let fn = function () {
     }
     let fn1 = (a, b) => {
         return a + b;
     }
     let results = fn1(1, 1)
     console.log(results)
     // 箭头函数 
     // 1 this 是静态的  始终指向函数声明的作用域下的this 的值
     function getName() {
         console.log(this.name)
     }
     let getName2 = () => {
         console.log(this.name)
     }
     // 设置Window对象
     window.name = '加油'
     const school = {
         name: "ASDFGHJ"
     }
     // 直接调用
     // getName()
     // getName2()
     // call 方法的调用  改变this的值
     getName.call(school)
     getName2.call(school)
     // 2 不能作为构造函数 实例化对象
     // let Person=(name,age)=>{
         // this.name=name;
         // this.age=age;
     // }
     // let me=new Person("销毁",90);
     // console.log(me)
     // 3 不能使用arguments对象
     // let fn23=()=>{
         // console.log(arguments)
     // }
     // fn23(1.2,3)
     // 4 箭头函数的简写      省略()有且只有一个
     let add=n=>{
         return n+n;
     }
     console.log(add(9))
     // 省略{}  return
     let pow =(n)=>n*n
     console.log(pow(9))
 </script>

7 形参的初始值与结果赋值使用

 // 形参的初始值
 // function add(a,b,c,d,e){
 // return a+b+c+d+e;
 // }
 // let result=add(1,2,3,4);
 // console.log(result)
 // 与结果赋值使用
 function connect(host = "127.0.9.0", username, password, port) {
     console.log(host)
 }
 connect({
     host: "123456",
     username: "李四上栅",
     password: "12345678",
     port: "33060987"
 })
 // ES5
 function date1() {
     console.log(arguments)
 }
 date1("1张三", "2李四", "3空", "4思考", "5小康", "6订单")
 // rest 参数 必须放在最后 这是为什么?
 function date(...args) {
     console.log(args)
 }
 date("1张三", "2李四", "3空", "4思考", "5小康", "6订单")
 function fn4(a, b, c, d, e, f, ...args) {
     console.log(a);
     console.log(b);
     console.log(c);
     console.log(d);
     console.log(e);
     console.log(f);
     console.log(args);
 }
 fn4("1张三", "2李四", "3空", "4思考", "5小康", "6订单","47思考", "58小康", "69订单","4思考", "5小康", "6订单")

8 扩展运算符 能将数组转换为逗号分开 参数序列化

  <script>
      const tyop=['XXX','YYY','RRR','HHH','LLL','WWW','DDD','FFF','SSS']
      function chunwan(){
          console.log(arguments)
      }
      chunwan(...tyop)
  </script>
  <script>
    //定义一个集合
    let arrayLike = {
        '0': 'a',
        '1': 'b',
        '2': 'c',
        length: 3
    }; 
    //转成数组
    let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
    console.log((arr2))
  </script>

9 扩展运算符的应用

 <!-- 扩展运算符的应用 -->
 <div></div>
 <div></div>
 <div></div>
 <!--! 数组的并和 亲生 误删 唐安 -->
 <script>
     const kuaizi=['效率','小明',"小王","小鸡"]
     const fangkuang=['小坡','老婆','欧赔']
     constfangkuang1=kuaizi.concat(fangkuang)
     // ES5
     console.log(constfangkuang1)
     // ES6
     const hebing=[...kuaizi,...fangkuang]
     console.log(hebing)
     // 数组克隆
     const san=['A','B','C']
     const sane=[...san]
     console.log(sane)
     // 3 将伪数组转为真正的数组
     const divs=document.querySelectorAll("div");
     const divArr=[...divs];
     console.log(divArr)
 </script>

相关文章
|
2月前
|
JavaScript 前端开发 安全
ECMAScript 6(以下简称 ES6)的出现为 JavaScript 带来了许多新的特性和改进,其中 let 和 const 是两个非常重要的关键字。
ES6 引入了 `let` 和 `const` 关键字,为 JavaScript 的变量管理带来了革新。`let` 提供了块级作用域和暂存死区特性,避免变量污染,增强代码可读性和安全性;`const` 用于声明不可重新赋值的常量,但允许对象和数组的内部修改。两者在循环、函数内部及复杂项目中广泛应用,有助于实现不可变数据结构,提升代码质量。
31 5
|
2月前
|
存储 JavaScript 前端开发
JS的ES6知识点
【10月更文挑战第19天】这只是 ES6 的一些主要知识点,ES6 还带来了许多其他的特性和改进,这些特性使得 JavaScript 更加现代化和强大,为开发者提供了更多的便利和灵活性。
32 3
|
3月前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
3月前
|
JavaScript 前端开发 索引
JavaScript ES6及后续版本:新增的常用特性与亮点解析
JavaScript ES6及后续版本:新增的常用特性与亮点解析
81 4
|
3月前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
36 1
|
2月前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
50 0
|
3月前
|
前端开发 JavaScript 小程序
JavaScript的ES6中Promise的使用以及个人理解
JavaScript的ES6中Promise的使用以及个人理解
32 1
|
4月前
|
JavaScript 前端开发 Oracle
软件工程师,学习下JavaScript ES6新特性吧
软件工程师,学习下JavaScript ES6新特性吧
48 9
|
3月前
|
JavaScript 前端开发 大数据
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
57 0
|
4月前
|
前端开发 JavaScript
ES6新标准下JS异步编程Promise解读
ES6新标准下JS异步编程Promise解读
46 3