Node开发第一天ES6

ECMAScript是JavaScript的规格
JavaScript是ECMAScript的实现

ES5回顾

JavaScript严格模式(strict mode)

设立严格模式的原因:
1,消除JavaScript语法的一些不合理、不严谨之处,减少一些怪异行为;
2,消除代码运行的一些不安全之处,保证代码运行的安全;
3,提高编译器效率,增加运行速度;
4,为未来新版本的JavaScript做好铺垫。
“use strict”//是进入严格模式的标志
要求:
1,声明定义变量必须用var;
2,禁止自定义的函数中的this关键字指向全局变量;
3,创建eval作用域,更安全。

JSON对象

JSON对象有两个方法,并且JSON通常用于与服务器交换数据。分别为JSON.parse()和JSON.stringify()
JSON.parse()将数据转换为JavaScript对象
JSON.stringify()将对象、数组转换成字符串。

Object扩展

Object.create(prototype,[descriptors])
作用:以指定对象为原型创建新的对象,为新的对象指定新的属性,并对属性进行描述。
为新的对象指定新的属性,并对属性进行描述
value:指定值;
writable:标识当前属性值是否可修改,默认false;
configurable:标识当前属性是否可以被删除,默认false;
enumerable:标识当前属性是否能用for in 枚举,默认false。

Object.defineProperties(object,descriptors)
作用:为指定对象定义扩展多个属性。
get:用来获取当前属性值得到回调;
set:修改当前属性值得触发的回调函数,并且实参即为修改后的值。

Array扩展
var arr=[2,3,3,2,1,5]
console.log(arr.indexOf(3));// 1 得到数组中第一个数字为3的下标
console.log(arr.lastIndexOf(3));//2  得到数组中最后一个数字为3的下标
arr.forEach(function(item,index){
	console.log(item,index);
})  // 依次打印 2 0|3 1|3 2|2 3|1 4|5 5|  遍历数组
var arr1=arr.map(function (item,index){
	return item+10
}) 
console.log(arr1)// 12  13  13  12  11  15
//遍历数组返回一个新数组,返回加工之后的值
var arr2=arr.filter(function (item,index){
	return item>3
})
console.log(arr2) // 5
//遍历过滤出一个新的数组,返回条件为true的值
Function扩展

Function.prototype.bind(obj)
作用:将函数内的this绑定为obj,并将函数返回。

function fun(age){
        this.name='xm';
        this.age=age;
    }
    var obj={};
    fun.bind(obj,18)();
    console.log(obj.name,obj.age)

ES6简介

let

用法类似于var

     es5 全局 函数作用域  没有块级作用域 
     es6 新增块级作用域  {} let 在{}中使用  包括 for(){}  if(){}

     let:特点
     (1):不能重复声明变量  代表唯一
     (2):不会预处理, 不存在提升


     var :特点
         可以重复声明变量

块级作用域允许任意嵌套,外层作用域无法读取内层作用域的变量,而且内外层作用域可以声明同名变量。

const

const 常量
声明一个常量: const 常量名 = 值;
const 常量特点:
(1):只能声明一次,定义了常量,不能进行修改
(2):常量的命名,用驼峰命名规则,则大写(为了和变量区分开来) 多个单词用_隔开
(3):声明常量,就要确定常量的值
(4):const 只在代码块内有效。

模板字符串

字符串解析

         //es5:拼接字符串 解析字符串  "++"  +加号做的拼接
        // es6:字符串解析 `` 反引号  内容解析 ${对象.属性}
       let obj = {
           name:"小红",
           age:20,
       }
       console.log("名字:"+obj.name+"你的年龄:"+obj.age);  //es5
       console.log("------------");
       console.log(`名字:${obj.name}你的年龄:${obj.age}`);  //es6
简化的对象写法

ES6允许直接写入变量和函数,作为对象的属性和方法

箭头函数

es6允许用箭头(=>)声明函数,更加快捷方便。
()=>{ }等价于 function(){}

 箭头函数
      (1):方便 简洁
     let 声明一个变量 = ()=>console.log("只是输出一句话 ");
      (2):没有形参,有且只有一句话输出的时候,可以省略{}  大括号开始大括号结束
     let 声明一个变量 = (x)=>x+1
      (3)有参数,有且只有一个参数可以省略{}  大括号开始大括号结束  也可以省略return
        let 声明一个变量 = (x,y,z)=>x+y+z
      (4):有多个参数,且只有一个函数体输出  可以省略{}  可以省略return 返回
        let 声明一个变量  = (a,b,c)=>{
           函数体
        } 
      (5)有多个参数,且函数体里有多条输出的语句,return 不能省略;
      (6):箭头函数没有自己的this,而是依赖于上层对象是谁,箭头函数的this就是谁。

箭头函数注意事项:
1,函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象;
2,不可以当作构造函数,不可以使用new命令,否则报错;
3,不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用rest参数代替。

扩展运算符

扩展运算符(spread)是三个点(…)。好比rest参数的逆运算,将一个数组转为用逗号分隔的参数序列。

function  fn(a,...value)
      {
       console.log(arguments); //Arguments { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6,6: 7, 7: 8, … }
       console.log(a);//1
       console.log(value); //Array(7) [ 2, 3, 4, 5, 6, 7, 8 ]
       value.forEach(function(item,index){
          console.log(index+"---"+item);
       })
      }
      fn(1,2,3,4,5,6,7,8);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值