JS高级 查缺补漏

JS高级 查缺补漏

js和css一般建议文件名全小写,以中划线分割不同单词。大小驼峰会造成linux/windows上不同的系统,大小写规范不同的问题。

一般来说,要把样式表放在顶部,把脚本放在底部。样式表先加载,可以加快样式的显示,脚本放在底部,如果脚本有bug或者性能差,也不影响页面显示。

普通函数内的this, 非严格模式下是window, 严格模式下是undefined.

样式中的0值,不要带单位。样式值使用双引号,url不要带引号。

Symbol:

let s1 = Symbol('abc');
let s2 = Symbol('abc');
s1 === s2; => false

let s3 = Symbol.for('xxx');
let s4 = Symbol.for('xxx');
s3 === s4; => true

BigInt: 跟Symbol一样,不能用new来创建

let max = Number.MAX_SAFE_INTEGER; // 最大安全整数
let max1 = max + 1
let max2 = max + 2
console.log(max1 === max2); //true: 溢出错误
console.log('===============');

let bi1 = BigInt(Number.MAX_SAFE_INTEGER) || 9007199254740991n;
let max3 = bi1 + 1n;
let max4 = bi1 + 2n;
console.log(max3 === max4) // false
console.log('===============');

对象:

let c = {a: 1, b: 2}
let d = new Object(c)
console.log(c === d); ==> true (new 出来的对象,传入的参数是非undefined/null, 则直接返回该对象)

属性描述符里的特性:value: 默认值;configurable: 可配置(是否可以删除,是否可以通过defineProperty进行二次配置)默认false; enumerable: 可以枚举;writable: 可写;set: 数据劫持;get: 数据获取。

Object.assign是浅拷贝。var a = Object.assign({}, {a: 1})

Reflect:

for … in 和for … of: key和value的区别(for…of只能用于数组)

发表回复

*您的电子邮件地址不会被公开。必填项已标记为 。

*
*