近期高频

167 阅读2分钟

developer.mozilla.org/zh-CN/docs/… 情景知识库 github.com/lin-xin/blo… github 互动markdown

recurse + flateen

  1. for in 对象key和数组下标
  2. 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方法第一个参数也是作为函数上下文的对象
  1. 改变 this 指向
  2. 调用函数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
  1. call 是把第二个及以后的参数作为 func 方法的实参传进去,而 func1 方法的实参实则是在 bind 中参数的基础上再往后排。

absolute

  1. 方式一:传统方式,父容器relateive,子元素absolute,然后left:50%,再margin-left:-width/2

嵌套

  1. 外层padding 会影响子元素百分比
  2. element UI -- 默认样式修改不成功的问题 注意:此时该样式会污染全局样式,可以把它放在公共的css里面 为了不让所有的 el-input标签都是该样式,可以在HTML给改input加上一个类名,比如 modInput 你就可在它的父级加一个class,以用命名空间来解决问题。

首先我们要了解一下vue scoped是什么,很多人非常喜欢用scoped,其实scoped也没有很神秘的,它就是基于PostCss的,加了一个作用局的概念。

Object

  1. 删减对象属性 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)

Babel:下一代 JavaScript 语法的编译器

www.babeljs.cn/docs/