?? 坑
要注意运算符 ??
的优先级
1 | let a = 2, b = 3; |
== 和 === 区别
===
严格相等,会比较两个值的类型和值
==
抽象相等,比较时,会先进行类型转换,然后再比较值
建议用 ===
具体可见
Js 中如何正确创建一个类
1 | function Cat(name,color){ |
使用构造函数,成员变量使用 this 在构造函数中初始化;
所谓”构造函数”,其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。
1
2
3
4var cat1 = new Cat("大毛","黄色");
var cat2 = new Cat("二毛","黑色");
alert(cat1.name); // 大毛
alert(cat1.color); // 黄色
类变量和方法定义在 prototype 上
构造函数有一个 prototype 对象,该对象的所有属性和方法,都会被构造函数的实例继承。因此在这里定义类变量和方法可以实现不同对象之间的数据共享
JS 数组深拷贝
1 | const newArray = JSON.parse(JSON.stringify(array)); |
JS Fetch 请求使用 application/x-www-form-urlencoded
的坑
body 参数必须自己手动编码,否则会出错
1 | var details = { |
数组中如果含有 undefined,不会参加 sort 函数的排序,会默认被排到最后
1 | let years = [2011, undefined, 2012] |