es部分内容

json

json字符串

​ == JSON是一种特殊的字符串格式,本质是一个字符串

​ == 但是长得像对象和数组,里面的key和value如果是字符串格式,都用双引号包裹(必须是双引号)

json方法

​ JSON.parse(json字符串):可以把json字符串转换成对象或者数组

var obj = JSON.parse(jsonObj);
var arr = JSON.parse(jsonArr)
console.log(obj);// obj就是我们的js对象
console.log(arr);// arr就是我们的js数组

​ JSON.stringify(对象或者数组):可以把对象或者数组转换成json字符串

var obj2 = {
            a:1,b:2,gender:'男'
        }
var arr2 = [
        {a:1,b:2,gender:'男'},
        {a:10,b:20,gender:'女'}
        ]
var jsonObj2 = JSON.stringify(obj2);
var jsonArr2 = JSON.stringify(arr2)
console.log(jsonObj2);// json字符串
console.log(jsonArr2);// json字符串

call/apply/bind改变this指向

  1. call方法

​ call方法是附加在函数调用后面使用,可以忽略函数本身的this指向

​ 语法:函数名.call(‘要改变的this指向’,‘函数实参1’,‘函数实参2’,…)

  1. apply方法

    apply方法是附加在函数调用后面使用,可以忽略函数本身的this指向

    语法:函数名.apply(‘要改变的this指向’,[‘函数实参1’,‘函数实参2’,…])

3.bind方法

function fn(a,b){
            console.log(this);
            console.log(a)
            console.log(b)
        }
fn(10,20);// 本次fn()直接调用,this是window
console.log("=======")
var obj = {name:'Jack'}
var newFn = fn.bind(obj);// bind调用的时候,不会执行fn函数,而是返回一个新的函数,这个新的函数是一个改变了this指向以后的函数
newFn(1,2);// 调用newFn(1,2) 就是调用一个长的和fn一模一样的函数,只不过里面的this指向改成了obj

区别:

 + call和apply可以改变函数里面的this指向,会立即执行函数
 + bind可以改变函数里面的this指向,返回一个新的改变了this指向的函数,不回立即执行函数
 + call和apply区别:传递实参的方式不同

let const声明

相同:

1 let和const不允许重复声明变量
2.let和const声明的变量不会在预解析的时候解析(也就是没有变量声明提示)
3.let和const声明的变量会被所有代码块限制作用域

区别:

1.let声明的变量的值可以改变,const声明的变量的值不可以改变
2.let声明的时候可以不赋值,const声明的时候必须赋值

箭头函数

  1. 特性:

    1.匿名函数(赋值函数)才能简写成箭头函数
    2.箭头函数内部没有this,箭头函数的this是上下文的this(就是他所处的环境里面的this,也就是他不会改变this)
    3.箭头函数内部没有arguments这个参数集合
    4.函数的行参只有一个的时候,可以不写(),其余情况必须写
    5.函数体只有一行代码的时候,可以不写{},还会自动return
    

函数默认值:

 在es6我们可以直接把默认值写在函数的行参位置
 function fn(a=10){
 console.log(a)
 }
 fn(); // 不传递参数的时候,函数内部的a就是10
 fn(20);// 传递参数20的时候,函数内部的a就是20

解构赋值(就是快速的从对象或者数组中取出成员的一个语法方式)

  1. 解构对象

    const obj = {
                name:'Jack',
                age:18,
                gender:'男'
    }
    
    // 前面的{}表示我要从obj这个对象中获取成员
    // name,age,gender都得是obj中有的成员名
    // obj必须是一个对象
    let {name,age,gender} = obj;
    console.log(name)
    console.log(age)
    console.log(gender)
    
  2. 解构数组

    const arr = ['jack','rose','tom'];
    // 前面的[]表示从arr这个数组中获取成员
    // a,b,c分别对应这个数组的索引0,1,2
    // arr必须是一个数组
    let [a,b,c] = arr;
    console.log(a)
    console.log(b)
    console.log(c)
    

模板字符串

  1. ``表示字符串

  2. ${}表示变量

展开运算符(…)

// let arr = [1,22,333,4444,55555]
// ...arr:就是把数组的壳拆掉,把里面的内容展开出来

for in和for of

  1. for in(遍历索引或成员名)

    for(let key in obj){
        console.log(key);// 成员名
    }
    for(let i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值