developer.mozilla.org/zh-CN/docs/… 情景知识库 github.com/lin-xin/blo… github 互动markdown
recurse + flateen
- for in 对象key和数组下标
- toString() 方法返回一个表示该对象的字符串。 使用 toString() 检测对象类型
var toString = Object.prototype.toString;
toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]
//Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
call,apply,bind区别
call,apply方法第一个参数也是作为函数上下文的对象
- 改变 this 指向
- 调用函数apply、call 方法都会使函数立即执行,因此它们也可以用来调用函数。
bind 方法不会立即执行,而是返回一个改变了上下文 this 后的函数。而原函数 func 中的 this 并没有被改变,依旧指向全局对象 window。
function func(a, b, c) {
console.log(a, b, c);
}
var func1 = func.bind(null,'linxin');
func('A', 'B', 'C'); // A B C
func1('A', 'B', 'C'); // linxin A B
func1('B', 'C'); // linxin B C
func.call(null, 'linxin'); // linxin undefined undefined
- call 是把第二个及以后的参数作为 func 方法的实参传进去,而 func1 方法的实参实则是在 bind 中参数的基础上再往后排。
absolute
- 方式一:传统方式,父容器relateive,子元素absolute,然后left:50%,再margin-left:-width/2
嵌套
- 外层padding 会影响子元素百分比
- element UI -- 默认样式修改不成功的问题
注意:此时该样式会污染全局样式,可以把它放在公共的css里面
为了不让所有的 el-input标签都是该样式,可以在HTML给改input加上一个类名,比如 modInput
你就可在它的父级加一个class,以用命名空间来解决问题。
首先我们要了解一下vue scoped是什么,很多人非常喜欢用scoped,其实scoped也没有很神秘的,它就是基于PostCss的,加了一个作用局的概念。
Object
- 删减对象属性 Object.assign浅拷贝
var property = Object.assign({}, obj1)
delete property.entityId
delete property.entityType
2.组合json数组 Object.keys
const data = Object.keys(obj).map((v, i, a) => {
if (v !== '修改时间' && v !== '创建时间' && v !== 'properties') {
return ({ key: v, value: obj[v] })
}
}).filter((v, index) => v !== undefined)
非空判断
// const objm = Object.objToStrMap(response)
// console.log('Map', objm)
const love = _.isEmpty(null)
const love2 = _.isEmpty(undefined)
const love3 = _.isEmpty('')
const love4 = _.isEmpty({})
const love5 = _.isEmpty([]) // 非空判断的?.
console.log(love, love2, love3, love4, love5)