zoukankan      html  css  js  c++  java
  • js4

    数组的解构赋值: 位置
    对象的解构赋值: 名称

    // {}在解构赋值的时候,不能出现在一行的最前面,否则js解析器会把他当成一个代码块,加()
    ({a, b} = obj),告诉他这个仅仅是一个解构语句

     let {a, b} = {a: 1, b: 2};
     let{a:A, b} = {a: 1, b: 2};
     let{a:A=1, b=2} = {a: 10}; //A=10, b=2;

    let a = 0;
    ({a, b} = {a: 1, b: 2}); //通过对象的解构赋值改变变量的值


    let {a[y]} = {a: ['Yo.']}; //获取'Yo.', 错误
    let{a: [y]} = {a: ['Yo.']}; //获取'Yo.', 正确 把a重命名为[Y],再解构['Yo.']
    -----------------------------------------------------------------------------------
    let {a{b}} = {a: {b: 1}}; //获取b的值,错误
    let {a: {b}} = {a: {b: 1}}; //获取b的值,正确

    // 解构赋值中,初始变量中不能出现a[]、a{},重命名(a: {b})的可以出现

    let {floor, pow} = Math; //解构Math对象中的方法
    let a = 1.9;
    console.log(floor(a)); // 1
    console.log(pow(2, 3)); // 8

    // undefined 未声明(没值)
    // not defined 未定义(没变量)

    // Proxy 代理,用于在语言层面上去操作一个对象 Proxy({原对象},{配置项})

    // let s = new Set([1, 2, 3, 3]);
    // Set 和 Array 都是数据结构

    var a = [2, 4, 6, 8];
    function each(arr,callback){
    for(var i = 0; i < arr.length; i++){
    var item = arr[i];
    callback(item);
    }
    }
    
    each(a, function (item) {
    if (item < 5) {
    console.log(item);
    }
    });
    
    //你接受一个传参,叫callback,然后执行这个callback,同时执行的时候把item传进来

    回调函数:叫我一下


    yo.call(lsd); 用lsd来做yo()里边的this

    this用于在不同的环境下,给不同的父级赋能的

    this等于什么不取决于this所在的位置,取决于this所在的function是如何被调用的
    function 作为方法被调用(对象.fullname()),this等于他的 父级对象
    function 作为构造器被调用 ( new User()),this等于 即将生成的对象
    其他情况this等于undefined,指向最外层


    显性属性是拷的,隐性属性是指向的

    变化的显性 不变的隐性


    b的原型继承于A,A的原型继承于Object

    对象的原型 指向 其构造器的原型

  • 相关阅读:
    【其他】parallels Desktop解决无法压缩硬盘的问题
    【读书笔记】《互联网企业安全高级指南》1-5
    【漏洞复现】SMBLoris windows拒绝服务漏洞
    【编程开发】macOS下配置scapy环境
    C#异常处理经验(原则与方法)
    EntityFramework linq 多条件查询,不定条件查询
    C#制作、打包、签名、发布Activex全过程
    ZPL语言完成条形码的打印
    Linux环境下MySql安装和常见问题的解决
    lrzsz——一款好用的文件互传工具
  • 原文地址:https://www.cnblogs.com/qq254980080/p/8590553.html
Copyright © 2011-2022 走看看