instanceof操作符的实现原理及实现
instanceof运算符用于判断构造函数的prototype属性是否出现在对象的原型链中的任何位置。
什么是javascript中的包装类型?
在javascript中,基本类型是没有属性和方法的,但是为了便于操作基本类型的值,在调用基本类型的属性或方法时javascript会在后台隐式地将基本类型的值转换为对象。
在访问"abc".length时,javascript将"abc"在后台转换成String("abc"),然后再访问其length属性。
javascript也可以使用Object函数显式地将基本类型转换为包装类型;
也可以使用valueOf方法将包装类型倒转成基本类型。
为什么会有BigInt的提案? javascript中Number.MAX_SAFE_INTERGER表示最大安全数字,计算结果是9007199254740991,即在这个数范围内不会出现精度丢失(小数除外)。但是一旦超过这个范围,js就会出现不准确的情况,这在大数计算的时候不得不依靠一些第三方库进行解决,因此官方提出了BigInt来解决此问题。
如何判断一个对象是空对象?
使用JSON自带的stringify方法来判断
使用ES6新增的方法Object.keys()来判断
const对象的属性可以修改吗?
const保证的并不是变量的值不能改动,而是变量指向的那个内存地址不能改动。对于基本类型的数据(数值、字符串、布尔值),其值就保存在变量指向的那个内存地址,因此等同于常量。
但对于引用类型的数据(主要是对象和数组)来说,变量指向数据的内存地址,保存的只是一个指针,const只能保证这个指针是固定不变的,至于它指向的数据结构是不是可变的,就完全不能控制了。