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

資訊專欄INFORMATION COLUMN

JavaScript 數據類型(二)

maxmin / 1424人閱讀

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

Object 類型

ECMAScript中的對象就是一組數據和功能的集合。

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

constructor: 構造函數。

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

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

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

toLocaleString(): 返回對象的字符串表示,該字符串與執行環境的地區對應。

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

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

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

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

創建 Symbol([description])

description: 可選的字符串。symbol的描述,可用于調試(控制臺顯示、轉為字符串等)但不能訪問symbol本身。
如果 Symbol 的參數是一個對象,就會調用該對象的toString方法,將其轉為字符串,然后才生成一個 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

// 創建一個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。它們的區別是,前者會被登記在全局環境中供搜索,后者不會。Symbol.for()不會每次調用就返回一個新的 Symbol 類型的值,而是會先檢查給定的key是否已經存在,如果不存在才會新建一個值。

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 作為屬性名,該屬性不會出現在for...infor...of循環中,也不會被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()

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

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

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

...

參考

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54098.html

相關文章

  • 數據類型

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

    Tecode 評論0 收藏0
  • 數據類型

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

    CarlBenjamin 評論0 收藏0
  • 進擊的 JavaScript) 之 數據結構

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

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

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

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

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

    QiShare 評論0 收藏0

發表評論

0條評論

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