记录一些可能会经常使用到的一些文件或者方法。
近期将其更新为 ES6 语法,若需要兼容 ES5 语法,请麻烦自行处理。
文件放置于 utils
目录下,目前有以下方法:
中文转拼音,Demo 在
examples/convertToPinyin.html
,思路看文章。
最全面的身份证号码校验,支持 15 位和 18 位的身份证号码(文章)。
获取当前 URL 的二级域名(如 baidu.com),兼容 IP 地址。可应用于设置 cookie 的 domain 参数
判断一个值是否为数组的方法。请注意,利用
typeof
、instanceof
或者原型来判断是太严谨的,具体原因看下这篇文章。
判断一个值的类型,可区分“对象”(包括基于 Object 派生的其他类型,如 Object、Array、Function、Date、RegExp 等)。关于 JavaScript 的数据类型分类,看下这篇文章。
自实现的深拷贝方法,主要面向学习与面试,详细的实现思路请看文章。
请注意,如果生产环境使用
JSON.stringify()
无法解决你的需求,请使用 Lodash 库的_.cloneDeep()
方法,那个才叫面面俱到。千万别用我这方法,切记!
函数防抖,思路请看文章。
函数节流,思路请看文章。
关于 JavaScript 获取 URL 上的参数值,思路请看文章。
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ href │
├─────────────┬─────────────────────┬────────────────────────┬──────────┬────────────────┬───────┤
│ origin │ │ origin │ pathname │ search │ hash │
├──────────┬──┼─────────────────────┼────────────────────────┤ │ │ │
│ protocol │ │ username │ password │ host │ │ │ │
│ │ │ │ ├─────────────────┬──────│ │ │ │
│ │ │ │ │ hostname │ port │ │ │ │
│ │ │ │ │ │ │ │ │ │
" https: // user : pass @ sub.example.com : 8080 /p/a/t/h ?query=string #hash "
│ │ │ │ │ │ │ │ │ │
└──────────┴──┴──────────┴──────────┴─────────────────┴──────┴──────────┴────────────────┴───────┘
(All spaces in the "" line should be ignored. They are purely for formatting.)
对 Cookie 的增删改查,可以更简便地操作。