本篇文章给大家带来的内容是关于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教程,请关注。
以上就是javascript中原始值是什么?javascript中原始值的详解的详细内容。