delete在js里为引用删除

delete 运算符
从对象中删除一个属性,或从数组中删除一个元素。

delete expression
expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。

说明
如果 expression 的结果是一个对象,且在 expression 中指定的属性存在,而该对象又不允许它被删除,则返回 false。
在所有其他情况下,返回 true。

example:
var arr = [1,2,3];
var arrItem = arr[1];
var obj = {a:‘a‘, b:‘b‘};
var objItem = obj.a;

delete arr[1];
alert(arrItem);//这里输出2
alert(arr[1]);//这里输出undefined
alert(arr.length);//这里输出3

delete obj.a;
alert(objItem);//这里输出a

//说明:可见,delete删除的仅仅是数组或对象中对其成员的引用
//特别需要注意的是,数组delete后length仍然不变

var objKeys = [];
for(var k in obj)objKeys.push(k);
alert(objKeys);//这里输出b
//说明:delete删除对象成员后,无法被遍历

时间: 2024-08-24 10:11:39

delete在js里为引用删除的相关文章

C# 直接引用js文件,调js里的数据

C# 直接引用js文件,调js里的数据 引入命名空间 using System.IO; string path = AppDomain.CurrentDomain.BaseDirectory + "/content/js/branddata.js";string str2 = File.ReadAllText(path); path:js所在的路径 str :js文件里的数据 原文地址:https://www.cnblogs.com/qiu18359243869/p/10639672.

C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针

 目  录 1       开始学习C++.............................................................................................................. 4 1.1       C++的头文件.................................................................................................

js获取html元素? js里"=="和"==="区别?

现在的我的cpu又添加一项进程,那就是javaScript. 一.js获取html元素常用的方法: js获取html元素常用的方法有: 1)var obj = document.getElementById("#id");非常常用是通过Id来获取页面元素的. 2) var obj = document.getElementsByTagName("element");这个是通过html页面标签来获取元素的.在一个页面中相同的标签会出现很多次,如何能定位到自己想要的呢?

三.jquery.datatables.js表格编辑与删除

1.为了使用如图效果(即将按钮放入行内http://www.datatables.net/examples/ajax/null_data_source.html) 采用了另一个数据格式 2.后台php,取表格数据变为: public function initable(){ $db = M('yanfa_project')->select(); // 取$db的长度 // $len =count($db); $item=array(); // 循环将$db二维数组每一项的value取出放一个数组

同一个事务里 查询 已删除但是未提交的数据[bug记录]

前几天犯了个低级错误,在一个事务方法里老是查询不到某条记录,但是debug卡住时,用db工具查,又能查出值. 经过一番折腾,原来是我在同一个事务里 查询 了已删除但是未提交的数据,当然查询不到了!!! 情况是这样的: Service层(spring事务管理配置在这一层,此方法配了PROPAGATION_REQUIRED)有个方法function m()写得很长, 其中有2步是 1. delete from B where objectid ='TestB' 2. select * from A

Js里重载问题

JS里是否存在重载? 我们知道JS和Java很像,Java是有重载的,那么JS里有吗? 答案是没有的 重载就是函数(方法)名一样,参数列表不同,同命不同参称之为重载 在js里如果有同命不同参的函数,则后写的函数覆盖前面的函数(html从上到下解析顺序),也就是多个同名函数,只有一个最后一个起作用. 模拟重载 js里虽然没有重载,但是我们可以模拟重载 说明 模拟重载需要用到arguments argument是类数组对象 属性 length 获取arguments对象的长度 callee 引用当前

在一个JS文件中引用另一个JS文件

方法一,在调用文件的顶部加入下例代码: document.write(”<script language=javascript src=’/js/import.js’></script>”);//(注:有时你引用的文件还可能需要引用其他的js,我们需要将需要的那个js文件也以同样的方法引用进来) 方法二,通过中间界面对js进行应用 我们可以在某个html中引用了你需要的js文件,我们可以通过拿到那个html文件的对象,然后在通过这个对象去引用js的方法. 方法三:html页面引入a

js里==和===的区别 以及sass与less的区别 (精解版)

js里==和===有什么区别 ==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换===:用来检测两个操作数是否严格相等1.对于zhidaostring,number等基础类型,==和===是有区别的内不同类型间比较,==之比较“转化成同一类型后的容值”看“值”是否相等,===如果类型不同,其结果就是不等同类型比较,直接进行“值”比较,两者结果一样2.对于Array,Object等高级类型,==和===是没有区别的3.基础类型与高级类型,==和===是

在js里UTF-8与GB2312的互转

js的函数如下: function GB2312UTF8() { this.Dig2Dec = function(s) { var retV = 0; if (s.length == 4) { for (var i = 0; i < 4; i++) { retV += eval(s.charAt(i)) * Math.pow(2, 3 - i); } return retV; } return - 1; } this.Hex2Utf8 = function(s) { var retS = "