工作总结1

前些天看到阮老师的一篇文章的一句话:“对我来说,博客首先是一种知识管理工具,其次才是传播工具。我的技术文章,主要用来整理我还不懂的知识。我只写那些我还没有完全掌握的东西,那些我精通的东西,往往没有动力写。炫耀从来不是我的动机,好奇才是。"

我觉得挺对的,写一些东西放在这里,是对已经学习知识的一种加深记忆。

工作感悟:

  1. 面对混乱的代码 将代码简单封装 可以加快掌握逻辑的速度
  2. 再次理解this的指向问题
  3. 如果连续 bind() 两次,亦或者是连续 bind() 三次,第二次以后的 bind 是无法生效的。
  4. 可以通过Object.prototype.toString.call(foo)来判断类型,将会返回类似"[object Function]"的字符串
var toString = Object.prototype.toString

function isObject(obj) {
  return toString.call(obj) === "[object Object]"
}

function isString(obj) {
  return toString.call(obj) === "[object String]"
}

function isArray(obj) {
  return toString.call(obj) === "[object Array]"
}

function isFunction(obj) {
  return toString.call(obj) === "[object Function]"
}
  1. 简单的状态返回
    search_type: function (type) {
          switch (type) {
          case 'phone':
              return '手机'
          case 'pc':
              return '电脑'
          default:
              return ''
          }
      }

可以简化成对象形式或者数组的形式

      search_type: function (type) {
          var types = {
              'phone': '手机',
              'pc': '电脑',
          }
          return types[type] ? types[type] : ''
      }

参考的博客:

  1. 深入浅出 妙用Javascript中apply、call、bind
  2. Sea.js 源码解析(三)

你可能感兴趣的:(工作总结1)