首頁 >web前端 >js教程 >JavaScript中原始值是什麼? JavaScript中原始值的詳解

JavaScript中原始值是什麼? JavaScript中原始值的詳解

云罗郡主
云罗郡主轉載
2018-11-23 15:52:533593瀏覽

本篇文章帶給大家的內容是關於JavaScript中原始值是什麼? JavaScript中原始值的詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

原始值:

概念:原始類型的值就是原始值,即原始值有string,、number、boolean、null和undefined五種。

valueOf() 和 toString() 方法的使用:

null和undefined沒有valueOf和toString方法,呼叫時報錯誤。

預設情況下呼叫的是valueOf方法:

每個JavaScript物件的valueOf 方法定義不同:

JavaScript中原始值是什麼? JavaScript中原始值的詳解

##例如:

// 函数:
<script> 
  var f = function () {}
  console.log(f) // ƒ () {}
  console.log(f.toString()) // function () {}
  console.log(f.valueOf()) // f () {}
</script>
// 对象
<script> 
  var obj = {a: 1, b: &#39;ss&#39;}
  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()  // &#39;1,2,3&#39;
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中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除