标签:运行速度 index 函数 with 做了 定义变量 fine 箭头函数 CM
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()可以进行属性遍历
待续。。。。。。。。
标签:运行速度 index 函数 with 做了 定义变量 fine 箭头函数 CM
原文地址:https://www.cnblogs.com/lianqing/p/9246318.html