ECMAScript 6.0是JavaScript语言的下一代标准,在2015年正式发布。其目的是,使JavaScript语言可以用来编写复杂的大型程序,成为企业级开发语言。
ECMAScript和JavaScript什么关系?
简单说就是,前者是后者的规范,后者是前者的一种实现。
JavaScript严格模式:即在严格的条件下运行的。
设立严格模式的原因是:
- 消除JavaScript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
为未来新版本的JavaScript做好铺垫。
严格模式:
1:声明严格模式必须在程序的顶部
2:声明变量 必须先声明 必须要有var关键字
3:严格模式下不能删除变量
4:在函数里面的 this 没有对象
json对象:
JSON通常用于与服务端交换数据,有两种方法:JSON.parse()和JSON.stringify()
- JSON.parse()方法将数据转换为JavaScript对象。
- JSON.stringify()方法将数组、对象转化为字符串。
Object 扩展:
Object.create(prototype(原型),[descriptors])
作用: 以指定对象为原型创建新的对象,为新的对象指定新的属性,并对属性进行描述
value:指定值
writable:true/false。 当前属性值是否是可以更改的,默认是false
configurable:false/true。当前属性是否可以删除,默认是false
enumerable :false/true。当前属性是否能够用for in 枚举 默认是false
Object.defineProperties(object,descriptors)
作用:为指定对象定义扩展多个属性
get:用来获取当前属性值的回调函数
set:修改当前属性值的触发的回调函数,并且实参即为修改后的值
Array扩展
indexOf(value) : 得到值在数组中的第一个下标(下标从0开始) 不存在返回-1
lastIndexOf(value) :得到值在数组中的最后一个下标(下标从0开始) 不存返回-1
map(function(item, index){ }) : 遍历数组返回一个新的数组
格式:
数组.map(function(数组元素的值,数组的下标){ })
filter(function(item, index){ }) : 遍历过滤出一个新的子数组
格式:
数组.filter(function(数组的元素值,数组下标){ })
Function拓展
函数.bind() 函数内部this绑定为obj 并且返回函数
apply : 调用一个对象的一个方法 用另外一个对象替换当前对象
格式:
函数1.apply(函数2,[1,2]); //函数2调用函数1的方法
call : 调用一个对象的一个方法 用另外一个对象替换当前对象
格式:
函数1.call(函数2,1,2); //函数2调用函数1的方法
let
特点:
(1):不能重复声明变量 代表唯一
(2):不会预处理, 不存在提升
const 常量
声明一个常量: const 常量名 = 值;
const 常量特点:
(1):只能声明一次,定义了常量,不能进行修改
(2):常量的命名,用驼峰命名规则,则大写(为和变量区分开) 多个单词用_隔开
(3):声明常量,就要确定常量的值
(4):const 只能在块级里使用