浅谈ECMAScript

JS的三大组成部分

  BOM DOM  ECMAScript

ES5

严格模式
 在全局作用域前加一个 "use strict"
 严格模式带来了那些好处:
  1、增加了更多的报错的场合 使代码编译更加规范
  2、为未来的新版本做好了铺垫
  3.提高编译器效率,增加运行速度。

 体现:
  1、声明变量必须用var
  2、不允许删除变量
  3、this的指向在全局中指向window,不然则是 undefined

  4.不能自调用

ES5新增的常见方法

  数组中:

  indexOf  输入val 判断第一个出现字符是否存在,存在返回下标,不存在返回-1。 第二个参数是从第几个开始的

  lastIndexOf  输入val 判断最后出现的字符是否存在,存在返回下标,不存在返回-1。 第二个参数是从第几个开始

  reduce 参数是一个回调函数 回调参一:起始值   参数二:最后一个val  参数三:最后一个I值  参数四:整条数据

    参一+参二==总val之和     参一+参二==总下标之和   这两个比较特殊 

  以下三种: 参数是一个回调函数  回调参数一:val   参数二:index  参数三:整条数据

  map   类似循环  有返回值

  filter 类似于筛选判断  循环中 返回布尔值进行判断 输出数据

  forEach   类似于循环遍历  没有返回值

ES6新增方法

 改变this的指向方法 

  1.创建一个空间,把当前空间数据放在另一个指向空间中。

  2.call  apply  bind

 声明变量不在用var  

  声明变量一般用let const  

  let:
    1、在ES6里面变量不允许被重复定义
    2、ES6里面let定义的参数不会被声明提升
    3、let定义变量的时候可以将值保留在快级作用域内
    let只能在当前作用域下使用
    因此可以保留作用域内的值
    还可以用闭包保留
    只要在作用域内被let声明 外面的值将不可以访问(即使之后不声明直接写)
  const: 常量
    1、在ES6里面变量不允许被重复定义
    2、常量不允许被修改
    3、ES6里面const定义的参数不会被声明提升
  一经声明无法替换
    var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
    let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
    const用来定义常量,使用时必须初始化(即必须赋值 不然报错),只能在块作用域里访问,而且不能修改。

  

  字符串: 

    传递参数的时候 ${参数} 也是支持js语法
    includes:判断字符串中是否存在某个字符串 存在返回true 不存在false
    str.includes(字符)
    startsWith()判断首字符是不是想要的字符
    endsWith()判断尾字符是不是想要的字符
    repeat(n):n代表重复的次数'

  数组:

    Array.of():将一组数值转换为数组
    Array.from():将伪数组转换为数组
    for of: i代表数组内的数据
    el.find() 查询到了了符合条件的某一个 终止执行 返回val

    el.findIndex() 查询到了了符合条件的某一个 终止执行 返回Index

  解构赋值:

var arr2 = [1,2,3,[4,5,[6,7],[8,[9], 10], [11, 12]]];
//取数字7
var [a,b,c,[d,e,[f,g]]] = arr2;
console.log(g);

    数组解构按照下标一一对应进行解构

    对象解构按照key对象进行解构

  扩展运算符:(接触外部的包围 依次输出)

var array1 = [1,2,3,4,5];
console.log(...array1);
//1 2 3 4 5

var array1 = [1,2,3,4,5];
console.log([...array1]);
//[1,2,3,4,5]

  

  函数中:

    ES2016 做了一点修改,规定只要函数参数使用了默认值、解构赋值、或者扩展运算符,那么函数内部就不能显式设定为严格模式,否则会报错。

    箭头函数 this的指向 就是定义时所在的对象,而不是使用时所在的对象

    表现方式:如果有多个参数数 执行语句也为多个()=>{}

         如果单个参数  执行语句就为返回值  item=>val

    rest:变现方式  (..reset)=>{}   可以用来省略参数

  对象:

    Object.keys()可以进行属性遍历

  待续。。。。。。。。

猜你喜欢

转载自www.cnblogs.com/lianqing/p/9246318.html