javaScript中的 delete 使用问题求助
今天在看视频,视频演示使用delete 代码及效果如图我也自己在跟着写,但是效果却不一样,百度也没搜到有效信息,就想请教一下各位,麻烦解疑答惑
是删除 01 里的年龄 本帖最后由 zhuangxy 于 2019-11-13 16:14 编辑
{:301_1004:}你运行第一部分,输出结果会和第一部分的输出结果一样(有age属性),然后运行第2部分,第2部分输出结果同视频一样,但你会发现已经输出的第一部分结果变掉了,有的浏览器是不变的,可能和运行环境有关 注意看一下格式,有些地方需要用逗号 有些不用 因为他们是同一个对象,在Chrome控制台输出的是这个对象的地址引用。你把它输出到的页面上就对了,视频中的如果展开,效果和你的是一样的。 应该要先打开控制面板,刷新一下,就会看到跟视频一样的效果了 Javascript 中 Object 是引用数据类型,区别于基本数据类型(存放在栈中的简单数据段,数据大小确定,内存空间大小可以分配,它们是直接按值存放的,所以可以直接按值访问),它的数据保存在堆中,地址保存在栈中。两个console.log虽然在不同的位置打印了o1,但是指向了同一个堆内存对象,只要一有修改,所有用到的地方都会改变。如果要打印出你期望的结果可以这么写
var o1 = {
name: "路飞",
age: 15,
sex: "男",
}
console.log(JSON.parse(JSON.stringify(o1)))
delete o1.age
console.log(o1) 一样的。
使用 谷歌浏览器 的 console 写的,是可以的 我刚才试了一下,一开始用浏览器打开文件,不开启控制台,等代码运行完成再打开控制台,看到的效果确实跟你的一样。但是如果你在开启控制台的情况下刷新页面,是会看到正常代码效果的。具体原理可能跟浏览器的内部机制有关系,不懂。
页:
[1]
2