js基础之几个容易忽视的点
发布日期:2021-05-07 01:06:26 浏览次数:26 分类:原创文章

本文共 585 字,大约阅读时间需要 1 分钟。

1.对象的键不仅仅可以是字符串,还可以是boolean, number, undefined等等


在这里插入图片描述
在这里插入图片描述


2.对象的键如果是一个对象,那么会自动调用这个对象的toString()方法,转成字符串[object Object]


在这里插入图片描述
在这里插入图片描述
基于这一点,我们看一道面试题:
在这里插入图片描述
问此时a[b]的值是多少?
很明显应该是’react’,因为被覆盖了:
在这里插入图片描述


3. alert出来的结果都是字符串,不是字符串的会转化为字符串:


在这里插入图片描述
在这里插入图片描述


4.javascript数据类型分类


9种,基本数据类型引用数据类型


基本数据类型分为number, string, boolean,null, undefined以及ES6新增的SymbolBigint
引用数据类型分为Object和Function,其中Object又分为普通对象Math对象Reg正则对象Date日期对象等等
基本数据类型存在栈内存stack里面,引用数据类型存在堆内存里


5.闭包相关


在这里插入图片描述
等号=赋值,操作分为三步:1.创建值 2.创建变量 3.把变量和值关联在一起


在这里插入图片描述


6.深浅克隆


浅克隆在ES5里面实现:
在这里插入图片描述
在ES6里面有展开运算符:
在这里插入图片描述
浅克隆只是克隆了对象的第一层,因为obj和obj2引用类型指向的地址都是一样的,修改一个值,另一个也会随着更改:
在这里插入图片描述


可以用JSON.strinify()和JSON.parse()方法实现深拷贝,但是这种方法有局限性:
在这里插入图片描述

上一篇:[CQOI2021模拟]此罪当珠
下一篇:isNaN()详解以及isNaN()和Number.isNaN()区别

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月29日 11时35分35秒