国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript 數(shù)據(jù)類型(二)

maxmin / 1430人閱讀

摘要:用于檢查傳入的對象是否是當前對象的原型。返回對象的字符串數(shù)值或布爾值表示。類型表示獨一無二的值。是一種基本數(shù)據(jù)類型。一個值能作為對象屬性的標識符這是該數(shù)據(jù)類型僅有的目的。圍繞原始數(shù)據(jù)類型創(chuàng)建一個顯式包裝器對象從開始不再被支持。

Object 類型

ECMAScript中的對象就是一組數(shù)據(jù)和功能的集合。

創(chuàng)建對象
const o = new Object();
const o = new Object; // 有效,但不推薦省略圓括號
const o = {};
實例屬性和方法:

constructor: 構(gòu)造函數(shù)。

hasOwnProperty(propertyName): 檢查 propertyName (傳入的屬性)在當前對象實例中(不是實例原型中)是否存在。

isPrototypeOf(object): 用于檢查傳入的對象是否是當前對象的原型。

propertyIsEnumerable(propertyName): 檢查 propertyName (傳入的屬性)是否能夠使用 for-in 語句枚舉。

toLocaleString(): 返回對象的字符串表示,該字符串與執(zhí)行環(huán)境的地區(qū)對應。

toString(): 返回對象的字符串表示。

valueOf(): 返回對象的字符串、數(shù)值或布爾值表示。通常與toString()返回值相同。

const o = new Object();
console.log(o.toLocaleString()); // "[object Object]"
console.log(o.toString()); // "[object Object]"
console.log(o.valueOf()); // "{}"
Symbol 類型

表示獨一無二的值。是一種基本數(shù)據(jù)類型。每個從Symbol()返回的symbol值都是唯一的。一個symbol值能作為對象屬性的標識符;這是該數(shù)據(jù)類型僅有的目的。它不支持語法:new Symbol()
圍繞原始數(shù)據(jù)類型創(chuàng)建一個顯式包裝器對象從 ECMAScript 6 開始不再被支持。 然而,現(xiàn)有的原始包裝器對象,如 new Boolean、new String以及new Number因為遺留原因仍可被創(chuàng)建。

創(chuàng)建 Symbol([description])

description: 可選的字符串。symbol的描述,可用于調(diào)試(控制臺顯示、轉(zhuǎn)為字符串等)但不能訪問symbol本身。
如果 Symbol 的參數(shù)是一個對象,就會調(diào)用該對象的toString方法,將其轉(zhuǎn)為字符串,然后才生成一個 Symbol 值。

var sym1 = Symbol();
var sym2 = Symbol("foo");
var sym3 = Symbol("foo");

typeof sym1 // "symbol"

sym1 // Symbol()
sym2 // Symbol("foo")
sym3 // Symbol("foo")

sym1.toString() // "Symbol()"
sym2.toString() // "Symbol(foo)"
sym3.toString() // "Symbol(foo)"

sym2 === sym3 // false

var sym = new Symbol(); // TypeError

// 創(chuàng)建一個Symbol包裝器對象
var sym = Symbol("foo");
typeof sym;     // "symbol"
var symObj = Object(sym);
typeof symObj;  // "object"

// 運算
`your symbol is ${sym}`
// TypeError: can"t convert symbol to string
Boolean(sym) // true
Number(sym) // TypeError
Symbol.for([description])

Symbol.for()與Symbol()這兩種寫法,都會生成新的 Symbol。它們的區(qū)別是,前者會被登記在全局環(huán)境中供搜索,后者不會。Symbol.for()不會每次調(diào)用就返回一個新的 Symbol 類型的值,而是會先檢查給定的key是否已經(jīng)存在,如果不存在才會新建一個值。

Symbol.for("bar") === Symbol.for("bar"); // true
Symbol.for() === Symbol.for(); // true

Symbol("bar") === Symbol("bar"); // false
Symbol.prototype.description

獲取Symbol 的描述。ES2019提供的一個實例屬性。

const sym = Symbol("foo");

sym.description // "foo"
Symbol.keyFor()

返回一個已登記的 Symbol 類型值的key。

Symbol.keyFor(); // TypeError

const sym1 = Symbol("a");
Symbol.keyFor(sym1); // undefined

const sym2 = Symbol.for("b");
Symbol.keyFor(sym2); // "b"
Object.getOwnPropertySymbols()

獲取指定對象的所有 Symbol 屬性名。因為Symbol 作為屬性名,該屬性不會出現(xiàn)在for...infor...of循環(huán)中,也不會被Object.keys()Object.getOwnPropertyNames()JSON.stringify()返回。

const obj = {};
let a = Symbol("a");
let b = Symbol("b");

obj[a] = "Hello";
obj[b] = "World";

for (let i in obj) {
  console.log(i); // 無輸出
}

Object.getOwnPropertyNames(obj); // []

Object.getOwnPropertySymbols(obj); // [Symbol(a), Symbol(b)]
Reflect.ownKeys()

返回所有類型的鍵名,包括常規(guī)鍵名和 Symbol 鍵名。

const obj = {
  [Symbol("a")]: 1,
  name: "Ashin",
  age: 3
};

Reflect.ownKeys(obj); // ["name", "age", Symbol(a)]
內(nèi)置的 Symbol 值

...

參考

《JavaScript高級程序設計》(第三版)
ECMAScript 6 入門 - 阮一峰

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/54098.html

相關(guān)文章

  • 數(shù)據(jù)類型

    摘要:定義什么是數(shù)據(jù)類型數(shù)據(jù)類型,就是將數(shù)據(jù)按照某一規(guī)則進行區(qū)別時所定義的分類標簽。中的數(shù)據(jù)類型為什么稱為弱類型語言中變量是沒有類型的,只有值才有。有哪些數(shù)據(jù)類型在中,共有七種數(shù)據(jù)類型,其中,六種是基本原始類型,一種是對象復合引用類型。 showImg(https://segmentfault.com/img/remote/1460000017215604); 定義 1. 什么是數(shù)據(jù)類型? ...

    Tecode 評論0 收藏0
  • 數(shù)據(jù)類型

    摘要:中的數(shù)據(jù)類型為什么稱為弱類型語言中變量是沒有類型的,只有值才有。有哪些數(shù)據(jù)類型在中,共有七種數(shù)據(jù)類型,其中,六種是基本原始類型,一種是對象復合引用類型。因此,我們可以寫一個函數(shù),用來精確檢測類型。 showImg(http://upload-images.jianshu.io/upload_images/7803415-2bbe6fd5fdeebe0d.jpg?imageMogr2/a...

    CarlBenjamin 評論0 收藏0
  • 進擊的 JavaScript) 之 數(shù)據(jù)結(jié)構(gòu)

    摘要:的垃圾回收器,進行回收。它們的數(shù)據(jù)就存放在堆內(nèi)存中,大小不一定,動態(tài)分配內(nèi)存,可隨時修改。引用類型的變量存的是其在堆內(nèi)存中的地址,值的讀取,就是讀取這個內(nèi)存地址中儲存的內(nèi)容。 這東西還是很重要的,你要是搞懂了,就會去除很多困惑,比如不知道大家在學習js 的時候,有沒有對 基礎(chǔ)類型 和 引用類型 感到困惑過,兩者之間 表現(xiàn)的不同之處。 js 不同其他編程語言,它是腳本語言。所以,它的數(shù)...

    BlackFlagBin 評論0 收藏0
  • 前端進擊的巨人():棧、堆、隊列、內(nèi)存空間

    摘要:中有三種數(shù)據(jù)結(jié)構(gòu)棧堆隊列。前端進擊的巨人一執(zhí)行上下文與執(zhí)行棧,變量對象中解釋執(zhí)行棧時,舉了一個乒乓球盒子的例子,來演示棧的存取方式,這里再舉個栗子搭積木。對于基本類型,棧中存儲的就是它自身的值,所以新內(nèi)存空間存儲的也是一個值。 面試經(jīng)常遇到的深淺拷貝,事件輪詢,函數(shù)調(diào)用棧,閉包等容易出錯的題目,究其原因,都是跟JavaScript基礎(chǔ)知識不牢固有關(guān),下層地基沒打好,上層就是豆腐渣工程,...

    edgardeng 評論0 收藏0
  • 33 個 js 核心概念():數(shù)據(jù)類型

    摘要:舉個例子在上面的例子可以看到,我們聲明是一個數(shù)字,但是我們在之后將的值又改成了字符串和布爾值后面會講這些類型。基本類型字符串表示一個字符串,如。因此,我們可以寫一個函數(shù),用來精確檢測類型。 showImg(https://segmentfault.com/img/remote/1460000017309509?w=850&h=572); 定義 1. 什么是數(shù)據(jù)類型? 數(shù)據(jù)類型,就是將...

    QiShare 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<