美文网首页
设置Object默认值

设置Object默认值

作者: 感觉不错哦 | 来源:发表于2019-10-10 10:11 被阅读0次

本篇比较短,记录自己刚学到的设置对象默认值

众所周知对象是通过valueOf跟toString来转换值的

var obj={
    valueOf:()=>{console.log('ValueOf');return {}},
    toString:()=>{console.log('String');return {}}
}

首先我们写一个对象并添加valueOf跟toString属性,先进行number转换

 +obj

可以看到先进行了valueOf 然后是toString,最后报错(因为return 被我修改了)

那么再进行String转换

String(obj)

那么就先进行toString,当然如果return一个随意字符串就会终止这个过程

如果是对象自身隐式转换,则是valurOf优先

var obj={
    valueOf:()=>{console.log('ValueOf');return {}},
    toString:()=>{console.log('String');return 'a'}
}

console.log(obj=='1',obj==1,'1'==obj,1==obj)

为了防止报错,给予了一个字符串a

那么ES6之后规定了一个ToPrimitive函数,用来规定这个转换规则,也可以看到报错中出现了这个单词

使用方法很简单

var obj={
    [Symbol.toPrimitive](n){
        
    }
}

n的话是当前的环境所指(Stirng or Number)

var obj={
    [Symbol.toPrimitive](n){
        console.log(n)
        if(n=='string'){
            return  'vue'
        }
        if(n=='number'){
            return 110
        }

            return true;
    }
} 

此时进行一个number操作

console.log(+obj)

同样的字符串操作(使用模板字符串)

console.log(`${obj}`)

默认执行

console.log(obj+'')  //此时就是default状态

相关文章

  • 设置Object默认值

    本篇比较短,记录自己刚学到的设置对象默认值 众所周知对象是通过valueOf跟toString来转换值的 首先我们...

  • 循环对象

    使用Object.values快速获取对象键值 使用Object.keys快速获取对象键名 解构时设置默认值

  • ES6系列 (五)Object.assign()

    使用Object.assign设置默认值 Object.assign接受任意数量的对象作为参数,将后续对象的值赋给...

  • se6函数扩展

    es6函数可以设置默认值,如下: 函数设置默认值时有这么几个限制: 参数设置默认值时,不能有重复的值,如: 设置了...

  • PT5的默认值运算符

    1、模板变量的默认值 自定义变量设置默认值; 系统变量设置默认值; 变量的函数与默认值可以同时使用。 index....

  • vue-resource 配置

    使用全局配置设置默认值。 在 Vue 组件选项中设置默认值。 Webpack/Browserify 在 packa...

  • mysql datetime类型设置默认值

    datetime在默认值处,设置默认值:CURRENT_TIMESTAMP

  • 函数参数默认值

    基础用法 使用默认值语法设置函数参数的默认值。

  • mysql常见问题

    设置时间字段默认值

  • ios,collectionView

    链接: collectionView设置默认值

网友评论

      本文标题:设置Object默认值

      本文链接:https://www.haomeiwen.com/subject/mmlopctx.html