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

// {}在解构赋值的时候,不能出现在一行的最前面,否则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

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

优质内容筛选与推荐>>
1、不错的js库
2、关于Android 如何配置测试类
3、Power BI 报表服务器中的行级别安全性 (RLS)
4、初识C语言 (四)
5、精通Eclipse 系列


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号