国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - js教程 - js刪除對象中的某一個字段的方法實(shí)現(xiàn)

js刪除對象中的某一個字段的方法實(shí)現(xiàn)

2021-12-29 16:19兔子零84 js教程

這篇文章主要介紹了js刪除對象中的某一個字段的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文主要介紹了js刪除對象中的某一個字段的方法實(shí)現(xiàn),分享給大家,具體如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 以下方法不改變原來對象
   let item = {
    name:'張三',
    age:'18',
    gender:'男'
   };
   console.log(item) // {age: "18",gender: "男",name: "張三"}
 
 
   let { age,...params } = item;
   console.log(item) // {age: "18",gender: "男",name: "張三"}
   console.log(typeof params.age) // undefined
   console.log(params) // {gender: "男",name: "張三"}
 
   // 以下方法會直接改變對象
   let item1 = {
    name:'張三',
    age:'18',
    gender:'男'
   };
   console.log(item1) // {age: "18",gender: "男",name: "張三"}
   delete item1.name;
   console.log(typeof item1.name) // undefined
   console.log(item1) // // {age: "18",gender: "男"}

與通常的看法不同,delete操作符與直接釋放內(nèi)存無關(guān)。內(nèi)存管理 通過斷開引用來間接完成的,查看內(nèi)存管理頁可了解詳情。

delete 操作符會從某個對象上移除指定屬性。成功刪除的時候會返回 true,否則返回 false。

但是,以下情況需要重點(diǎn)考慮:

如果你試圖刪除的屬性不存在,那么delete將不會起任何作用,但仍會返回true
如果對象的原型鏈上有一個與待刪除屬性同名的屬性,那么刪除屬性之后,對象會使用原型鏈上的那個屬性(也就是說,delete操作只會在自身的屬性上起作用)
任何使用 var 聲明的屬性不能從全局作用域或函數(shù)的作用域中刪除。
這樣的話,delete操作不能刪除任何在全局作用域中的函數(shù)(無論這個函數(shù)是來自于函數(shù)聲明或函數(shù)表達(dá)式)
除了在全局作用域中的函數(shù)不能被刪除,在對象(object)中的函數(shù)是能夠用delete操作刪除的。
任何用let或const聲明的屬性不能夠從它被聲明的作用域中刪除。
不可設(shè)置的(Non-configurable)屬性不能被移除。這意味著像Math, Array, Object內(nèi)置對象的屬性以及使用Object.defineProperty()方法設(shè)置為不可設(shè)置的屬性不能被刪除。

下面的代碼塊給出了一個簡單的例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
var Employee = {
 age: 28,
 name: 'abc',
 designation: 'developer'
}
 
console.log(delete Employee.name);  // returns true
console.log(delete Employee.age);  // returns true
 
// 當(dāng)試著刪除一個不存在的屬性時
// 同樣會返回true
console.log(delete Employee.salary); // returns true

不可配置屬性

當(dāng)一個屬性被設(shè)置為不可設(shè)置,delete操作將不會有任何效果,并且會返回false。在嚴(yán)格模式下會拋出語法錯誤(SyntaxError)。

?
1
2
3
4
var Employee = {};
Object.defineProperty(Employee, 'name', {configurable: false});
 
console.log(delete Employee.name); // returns false

var, let以及const創(chuàng)建的不可設(shè)置的屬性不能被delete操作刪除。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
var nameOther = 'XYZ';
 
// 通過以下方法獲取全局屬性:
Object.getOwnPropertyDescriptor(window, 'nameOther');
 
// 輸出: Object {value: "XYZ",
//         writable: true,
//         enumerable: true,
//         configurable: false}
 
// 因?yàn)?ldquo;nameOther”使用var關(guān)鍵詞添加,
// 它被設(shè)置為不可設(shè)置(non-configurable)
delete nameOther;  // return false

在嚴(yán)格模式下,這樣的操作會拋出異常。

嚴(yán)格模式與非嚴(yán)格模式的對比

在嚴(yán)格模式下,如果對一個變量的直接引用、函數(shù)的參數(shù)或者函數(shù)名使用delete操作,將會拋出語法錯誤(SyntaxError)。因此,為避免嚴(yán)格模式下的語法錯誤,必須以delete object.property或delete object['property']的形式使用delete運(yùn)算符。

?
1
2
3
4
5
6
7
Object.defineProperty(globalThis, 'variable1', { value: 10, configurable: true, });
Object.defineProperty(globalThis, 'variable2', { value: 10, configurable: false, });
 
console.log(delete variable1); // true
 
// SyntaxError in strict mode.
console.log(delete variable2); // false
?
1
2
3
4
5
6
7
function func(param) {
 // SyntaxError in strict mode.
 console.log(delete param); // false
}
 
// SyntaxError in strict mode.
console.log(delete func); // false

任何使用var聲明的變量都會被標(biāo)記為不可設(shè)置的。在下面的例子中,salary是不可設(shè)置的以及不能被刪除的。在非嚴(yán)格模式下,下面的delete操作將會返回false。

?
1
2
3
4
5
6
function Employee() {
 delete salary;
 var salary;
}
 
Employee();

讓我們來看看相同的代碼在嚴(yán)格模式下會有怎樣的表現(xiàn)。會拋出一個語法錯誤( SyntaxError)而不是返回false。
"use strict";

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function Employee() {
 delete salary; // SyntaxError
 var salary;
}
 
// 相似的,任何對任何函數(shù)
// 直接使用delete操作將會拋出語法錯誤。
 
function DemoFunction() {
 //some code
}
 
delete DemoFunction; // SyntaxError

示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// 在全局作用域創(chuàng)建 adminName 屬性
adminName = 'xyz';
 
// 在全局作用域創(chuàng)建 empCount 屬性
// 因?yàn)槲覀兪褂昧?var,它會標(biāo)記為不可配置。同樣 let 或 const 也是不可配置的。
var empCount = 43;
 
EmployeeDetails = {
 name: 'xyz',
 age: 5,
 designation: 'Developer'
};
 
// adminName 是全局作用域的一個屬性。
// 因?yàn)樗皇怯?var 創(chuàng)建的,所在可以刪除。
// 因此,它是可配置的。
delete adminName;    // 返回 true
 
// 相反,empCount 是不可配置的,
// 因?yàn)閯?chuàng)建它時使用了 var。
delete empCount;    // 返回 false
 
// delete 可用于刪除對象的屬性
delete EmployeeDetails.name; // 返回 true
 
// 甚至屬性不存在,它也會返回 "true"
delete EmployeeDetails.salary; // 返回 true
 
// delete 對內(nèi)建靜態(tài)屬性不起作用
delete Math.PI; // 返回 false
 
// EmployeeDetails 是全局作用域的一個屬性。
// 因?yàn)槎x它的時候沒有使用 "var",它被標(biāo)記為可配置。
delete EmployeeDetails;  // 返回 true
 
function f() {
 var z = 44;
 
 // delete 對局部變量名不起作用
 delete z;   // 返回 false
}

delete 和原型鏈

在下面的示例中,我們刪除一個對象的自己的屬性,而原型鏈上具有相同名稱的屬性可用:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Foo() {
 this.bar = 10;
}
 
Foo.prototype.bar = 42;
 
var foo = new Foo();
 
// 返回 true,因?yàn)閯h除的是 foo 對象的自身屬性
delete foo.bar;
 
// foo.bar 仍然可用,因?yàn)樗谠玩溕峡捎谩?/code>
console.log(foo.bar);  //42
 
// 從原型上刪除屬性
delete Foo.prototype.bar; //true
 
// 由于已刪除“ bar”屬性,因此不能再從Foo繼承它。
console.log(foo.bar);  //undefined

刪除數(shù)組元素

當(dāng)你刪除一個數(shù)組元素時,數(shù)組的長度不受影響。即便你刪除了數(shù)組的最后一個元素也是如此。

當(dāng)用 delete 操作符刪除一個數(shù)組元素時,被刪除的元素已經(jīng)不再屬于該數(shù)組。下面的例子中用 delete 刪除了 trees[3]。

?
1
2
3
4
5
var trees = ["redwood","bay","cedar","oak","maple"];
delete trees[3];
if (3 in trees) {
  // 這里不會執(zhí)行
}

如果你想讓一個數(shù)組元素繼續(xù)存在但是其值是 undefined,那么可以使用將 undefined 賦值給這個元素而不是使用 delete。下面的例子中,trees[3] 被賦值為 undefined,但該元素仍然存在。

?
1
2
3
4
5
var trees = ["redwood","bay","cedar","oak","maple"];
trees[3] = undefined;
if (3 in trees) {
  // 這里會被執(zhí)行
}

如果你想通過改變數(shù)組的內(nèi)容來移除一個數(shù)組元素,請使用splice() 方法。在下面的例子中,通過使用splice(),將trees[3]從數(shù)組中移除。

?
1
2
3
var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
trees.splice(3,1);
console.log(trees); // ["redwood", "bay", "cedar", "maple"]

到此這篇關(guān)于js刪除對象中的某一個字段的文章就介紹到這了,更多相關(guān)js刪除對象中的某一個字段內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://juejin.cn/post/6915956668010332167

延伸 · 閱讀

精彩推薦
  • js教程JavaScript canvas實(shí)現(xiàn)文字時鐘

    JavaScript canvas實(shí)現(xiàn)文字時鐘

    這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實(shí)現(xiàn)文字時鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    _Adoph6082021-12-29
  • js教程JavaScript 中 find() 和 filter() 方法的區(qū)別

    JavaScript 中 find() 和 filter() 方法的區(qū)別

    JavaScript 在 ES6 上有很多數(shù)組方法,每種方法都有獨(dú)特的用途和好處。...

    鋒享前端4502021-12-28
  • js教程微信小程序自定義支持圖片的彈窗

    微信小程序自定義支持圖片的彈窗

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義支持圖片的彈窗,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    歲末Zzz8172021-12-15
  • js教程JavaScript實(shí)現(xiàn)通訊錄功能

    JavaScript實(shí)現(xiàn)通訊錄功能

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    書寫夢想的鉛筆頭5622021-12-20
  • js教程基于JavaScript實(shí)現(xiàn)輪播圖效果

    基于JavaScript實(shí)現(xiàn)輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    努力學(xué)習(xí)中.....5462021-12-24
  • js教程微信小程序?qū)崿F(xiàn)下拉加載更多商品

    微信小程序?qū)崿F(xiàn)下拉加載更多商品

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)下拉加載更多商品,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    保護(hù)我方豆豆8102021-12-22
  • js教程JavaScript實(shí)現(xiàn)瀑布流布局的3種方式

    JavaScript實(shí)現(xiàn)瀑布流布局的3種方式

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)瀑布流布局的3種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    杏子_10247272021-12-20
  • js教程原生JavaScript實(shí)現(xiàn)留言板

    原生JavaScript實(shí)現(xiàn)留言板

    這篇文章主要為大家詳細(xì)介紹了原生JavaScript實(shí)現(xiàn)留言板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    棟棟很優(yōu)秀啊5222021-12-29
主站蜘蛛池模板: 日韩精品一区二区三区中文字幕 | 一级毛片久久久 | 一本一本久久a久久精品综合妖精 | 精品欧美一区二区三区久久久 | 欧美a级片在线观看 | 免费一二区 | 久久成人高清 | 日韩中文一区二区三区 | 热99精品| 成人毛片在线 | av在线免费观看一区二区 | 亚洲激情综合 | 中文字幕高清在线观看 | 一区二区中文字幕 | 91.成人天堂一区 | 美国特级a毛片免费网站 | 狠狠干2024 | 91毛片网 | 成人毛片在线观看视频 | 中文字幕av一区二区三区 | 久久精品亚洲成在人线av网址 | 男人天堂网av | 精品一区二区三区中文字幕 | 九热精品视频 | 国产美女www爽爽爽免费视频 | 91av官网| 中文字幕在线一区二区三区 | 日本1区2区| 亚洲精品99| 亚洲射情| 天堂在线中文字幕 | 看片久久| 亚洲视频播放 | 久久精品美女 | 亚洲午夜精品久久久久久高潮 | 亚洲精品国产一区 | 国产成人综合一区二区三区 | 久草视频在线观 | 中文字幕在线观看1 | 久久丁香视频 | 精品一区电影 |