JavaScript物件的valueOf()方法
js物件中的valueOf()
方法和toString()
方法非常類似,但是,當需要返回物件的原始值而非字串的時候才呼叫它,尤其是轉換為數字的時候。如果在需要使用原始值的上下文中使用了物件,JavaScript就會自動呼叫valueOf()
方法。
valueOf()
方法是Object
的原型方法,每個物件都具有該方法,但是各物件返回的值有一定的區別。我們一起來看看。
Object.prototype.valueOf()
JavaScript呼叫valueOf()
方法將物件轉換為原始值。你很少需要自己呼叫valueOf()
方法;
預設情況下,valueOf()
方法由Object後面的每個物件繼承。每個內建的核心物件都會覆蓋此方法以放回適當的值。
如果物件沒有原始值,則valueOf()
你可以在自己的程式碼中使用valueOf()
將內建物件轉換為原始值。建立自定義物件時,可以覆蓋Object.prototype.valueOf()
來呼叫自定義方法,而不是預設Object
方法。
覆蓋自定義物件的valueOf()
方法
你可以建立一個取代valueOf()
方法的函式,你的方法必須不能傳入引數。
假設你有個物件叫MyNumberType
而你想為它建立一個valueOf()
方法。下面的程式碼為valueOf()
方法賦予了一個自定義函式:
MyNumberType.prototype.valueOf = function() { return customPrimitiveValue; };
有了這樣的一個方法,下一次每當MyNumberType
要被轉換為原始型別值時,JavaScript在此之前會自動呼叫自定義的valueOf()
方法。
valueOf()
方法一般都會被JavaScript自動呼叫,但你也可以像下面程式碼那樣自己呼叫:
myNumberType.valueOf()
String.prototype.valueOf()
語法:strObj.valueOf()
返回值:表示給定String
物件的原始值
說明:valueOf()
方法返回一個String
物件的原始值,該值等同於String.prototype.toString()
。
該方法通常在JavaScript內部被呼叫,而不是在程式碼裡顯示呼叫。
let x = new String('Hello world')
console.log(x.valueOf()) // Hello world
Date.prototype.valueOf()
語法:dataObj.valueOf()
返回值:表示給定Date
物件的原始值
說明:valueOf()
方法返回以數值格式表示的一個Date
物件的原始值。該值從1970年1月1日0時0分0秒(UTC,即協調世界時)到該日期物件所代表時間的毫秒數。
該方法的功能和Date.prototype.getTime()
方法一樣。
該方法通常在JavaScript內部呼叫,而不是在程式碼中顯示呼叫。
var x = new Date(2018, 1, 12)
var myVar = x.valueOf()
console.log(myVar) // 1518364800000
Number.prototype.valueOf()
語法: numObj.valueOf()
返回值:表示給定Number
物件的原始值。
說明:該方法通常在JavaScript內部呼叫,而不是在程式碼中顯示呼叫。覆蓋Object.prototype.valueOf()
方法
案例:
Boolean.prototype.valueOf()
語法:bool.valueOf()
返回值: 返回給定Boolean
物件的原始值
說明: Boolean
的valueOf()
方法返回一個Boolean
字面量的原始值作為布林資料型別。該方法通常在JavaScript內部呼叫,而不是在程式碼中顯示呼叫。
案例:
Symbol.prototype.valueOf()
語法: Symbol().valueOf()
返回值:返回給定Symbol
物件的原始值
說明:Symbol
的valueOf()
方法返回Symbol
物件的原始值作為Symbol
資料型別。JavaScript呼叫valueOf()
方法將物件轉換為原始值。你很少需要自己呼叫valueOf()
方法。當遇到期望有原始值的物件時,JavaScript會自動呼叫它。
案例:
[完]
相關推薦
JavaScript物件的valueOf()方法
js物件中的valueOf()方法和toString()方法非常類似,但是,當需要返回物件的原始值而非字串的時候才呼叫它,尤其是轉換為數字的時候。如果在需要使用原始值的上下文中使用了物件,JavaScript就會自動呼叫valueOf()方法。 valueOf()方法是Object的原型方法,每個物件都具有該
javascript 定義物件、方法和屬性的使用方法(prototype)
prototype 定義和用法 prototype 屬性使您有能力向物件新增屬性和方法。 語法 object.prototype = { 函式名 : function(){} } object.prototype.name=value javaSc
javascript物件的一些基本的方法
Date物件 Date() 返回當日的日期和時間。 getDate() 方法可返回月份的某一天。 getFullYear() 從 Date 物件以四位數字返回年份。 getTime() 返回 1970 年 1 月 1 日至今的毫秒數。 getTime() 方法可返回距 1970 年 1 月
JavaScript 面向物件之一 —— 物件(物件的方法)
本系列文章根據《愛前端邵山歡老師深入淺出的js面向物件》視訊整理歸納 物件的方法 如果一個物件的屬性值是一個函式,我們稱這個屬性為這個物件的方法(method)。 var obj = { name : "張鑫", sex : "男", s
面試JavaScript String物件常用方法
length 返回字串的長度(字元數) 返回指定位置的字元,第一個字元位置為0 返回字串第一個字元的 Unicode 編碼。 用於連線兩個或多個字串。該方法沒有改變原有字串,但是會返回連線兩個或多個字串新字串。 可接受一個指定的 Unicode 值,
JavaScript 物件屬性檢查方法
JS 物件可以看做屬性的集合,我們經常會檢測集合中成員的屬性關係——判斷某個屬性是否存在於物件中。可以通過in運算子、hasOwnPreperty() 和 propertyIsEnumerable() 方法來完成這個工作,甚至僅通過屬性查詢也可以做到這一點。
JavaScript中遍歷陣列和物件的方法
js陣列遍歷和物件遍歷 針對js各種遍歷作一個總結分析,從型別用處,分析陣列和物件各種遍歷使用場景,優缺點等 JS陣列遍歷: 1,普通for循環,經常用的陣列遍歷 var arr = [1,2,0,3,9,10,20,30]; for ( var i = 0; i <arr.length
JavaScript面向物件程式設計建立物件的方法分析
面向物件的語言具有一個共同的標誌,那就是具有“類”的概念,但是在javascript中沒有類的概念,在js中將物件定義為“無序屬性的集合,其屬性可以包含基本值,物件或者函式”,即其將物件看作是一組名值對的散列表。這樣問題就來了,如何建立物件呢? 在最開始時使用object建構函式和物件字
淺談JavaScript物件新增getter與setter的5種方法
定義 getter 與 setter 1.通過物件初始化器在建立物件的時候指明(也可以稱為通過字面值建立物件時宣告) (function () { var o = { a : 7, get b(){return this.a +1;},//通過 get,set的 b,c方法間接性修改 a
JavaScript Math 物件常用方法與大全詳解 整數,取整,四捨五入,隨機數
Math 是一個內建物件, 它具有數學常數和函式的屬性和方法。不是一個函式物件。 JavaScript Math 物件 描述節 與其它全域性物件不同的是, Math 不是一個構造器. Math 的所有屬性和方法都是靜態的. 你用到的常數pi可以用 Math.PI
面試之JavaScript String物件常用方法
length 返回字串的長度(字元數) var str='Hello World!'; str.length; //12 charAt() 返回指定位置的字元,第一個字元位置為0 var str='Hello World!'; str.charAt(4);
JavaScript物件中的函式和方法有什麼區別(非常重要!!!)
在JavaScript中,物件是由建構函式生成的,且函式本身有屬性和方法,所以為了區分函式的方法和物件的方法,才有了函式和方法兩個概念,在其他很多語言中,函式就等於方法,而JavaScript完全不一樣! 例子: function Person() { } var arry=
javascript物件基礎(使用物件)---物件、屬性、方法的基本操作
除字串、數字、true、false、null和undefined之外,javascript的值都是物件 一、物件的分類: 1. 原生物件:  
javascript 物件具有哪些屬性和方法
Object 的每個例項都具有下列屬性和方法: constructor: 儲存著用於建立當前物件的函式。物件的該屬性對應的建構函式就是 Object()。 hasOwnProperty(propertyName): 用於檢查給定的屬性在當前物件例項中是否存在。其中,作為引數的屬性名 (p
es6 javascript物件方法Object.assign()
1 基本用法Object.assign方法用於物件的合併,將源物件( source )的所有可列舉屬性,複製到目標物件( target )。var target = { a: 1 }; var source1 = { b: 2 }; var source2 = { c: 3
JavaScript中String物件常見方法及屬性
JavaScript String物件簡介 在JavaScript,基本資料型別有Number型、String型、Boolean型、Undefined型、Null型、Function型等。 String物件就是和基本資料型別中的String型別相對應的Jav
【JavaScript】將方法從物件中解耦
在專案中我一直做的一件事情就是把方法從其物件中解耦。 map 、 filter 以及 reduce 並非是全部,但是它們肯定是首先獲得自由的。 解耦方法可以讓方法擺脫父物件所施加的限制,同時在表示程式碼的方式上給了我們更多的自由。 那麼這到底是啥玩意呢? 為簡便起見
javascript物件基礎(使用物件)---4物件、屬性、方法的高階操作-Fucntion和String
ECMAScript5為Function增加了一個原型方法bind(Function.prototype.bind), 用來把函式繫結到指定物件上 function.bind(thisArg[,arg1[,arg2[,arg3]]]);其中thisArg,this關鍵字可在新函式中引用的物件
javascript物件基礎(使用物件)---3物件、屬性、方法的高階操作-Arrary
Array---ECMAScropt5新增了9個方法 定位:2個--array.indexOf() 、 array.lastIndexOf() array.indexOf(searchElement[,fromIndex]);//陣列中第一
javascript物件基礎(使用物件)---2物件、屬性、方法的高階操作-Object
三、物件的高階用法(ECMScript5):Object Array Function String Object ------ 1. 建立物件(前面使用的是1.使用物件直接量2