本篇文章帶給大家的內容是關於JavaScript中原始值是什麼? JavaScript中原始值的詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
原始值:
概念:原始類型的值就是原始值,即原始值有string,、number、boolean、null和undefined五種。
valueOf() 和 toString() 方法的使用:
null和undefined沒有valueOf和toString方法,呼叫時報錯誤。
預設情況下呼叫的是valueOf方法:
每個JavaScript物件的valueOf 方法定義不同:
##例如:// 函数: <script> var f = function () {} console.log(f) // ƒ () {} console.log(f.toString()) // function () {} console.log(f.valueOf()) // f () {} </script> // 对象 <script> var obj = {a: 1, b: 'ss'} console.log(obj) // {a: 1, b: "ss"} console.log(obj.toString()) // [object Object] console.log(obj.valueOf()) // {a: 1, b: "ss"} </script>(1)呼叫物件的valueOf方法,如果傳回值是原始值直接傳回,否則傳回物件本身。 (2)對於數組,如果不重寫其toString()方法,其預設實作就是呼叫數組的 join()方法傳回值作為toString()的回傳值。 範例1:
[1,2,3].toString() // '1,2,3' var str = new String("11") console.log(str) //String {"11"} console.log(str.valueOf()) // 11 (typeof返回string) console.log(str.toString()) // 11 (typeof返回string)str.valueOf()的回傳值為11的原因:此處的valueOf方法呼叫的是String原型上的valueOf方法,而非Object物件原型上的valueOf方法,原型鏈結構中String.prototype在Object.prototype之前,而String.prototype.valueOf方法傳回的是一個字串,故回傳值為11。 例2:
<script> var obj = new Object({a: 1}) console.log(obj) // {a: 1} console.log(obj.valueOf()) // {a: 1} console.log(obj.toString()) // [object Object] console.log(obj + 1) // [object Object]1 </script>原因:使用物件運算時,首先呼叫的是valueOf方法,此時valueOf的回傳值仍舊是對象,因此會再呼叫toString方法運算,故回傳值時[object Object]1。 判斷一個值的具體類型:使用Object.prototype.toString()。 call(val) 傳回值有:String | Number | Boolean | Null | Undefined | Function | Array | Object | RegExp | Date | Error | Arguments#以上就是對JavaScript中原始值是什麼? JavaScript中原始值的詳解的全部介紹,如果您想了解更多有關
JavaScript教程,請關注PHP中文網。
以上是JavaScript中原始值是什麼? JavaScript中原始值的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!