美文网首页
js工具方法

js工具方法

作者: 3e2235c61b99 | 来源:发表于2020-08-20 10:30 被阅读0次

js彻底冻结一个对象

除了将对象本身冻结,对象的属性也应该冻结。下面是一个将对象彻底冻结的函数。

var constantize = (obj) => {
  Object.freeze(obj);
  Object.keys(obj).forEach( (key, i) => {
    if ( typeof obj[key] === 'object' ) {
      constantize( obj[key] );
    }
  });
};

js深拷贝一个对象

function deepClone(source) {
  if (!source && typeof source !== 'object') {
    throw new Error('error arguments', 'deepClone')
  }
  const targetObj = Array === source.constructor ? [] : {}
  Object.keys(source).forEach(keys => {
    if (source[keys] && typeof source[keys] === 'object') {
      targetObj[keys] = deepClone(source[keys])
    } else {
      targetObj[keys] = source[keys]
    }
  })
  return targetObj
}

个人感觉用下面这个方法也可以:

let targetObj = JSON.parse(JSON.stringify(obj))

js String和Number转换

stirng转number主要有三种方法:

let str = "111"
let num1 = parseInt(str)    //把字符串转换为整数
let num2 = parseFloat(str)    //把字符串转换为浮点数
let num3 = Number(str)    //把给定的值转换成数字(可以是整数或浮点数)
//类似的方法还有:
Boolean(value)    //把给定的值转换成Boolean型;
String(value)    //把给定的值转换成字符串。
//利用js变量弱类型转换
let num4 = str - 0
let num5 = str * 1

number转string

10..toString()    //"10"  双点解析
(10).toString()    //"10"  括号先计算再转换
10 + ''  //"10"  加空串

//或者
let num = 10
num.toString()  //"10"

js判断数据类型

Object.prototype.toString.call()返回的数据格式为 [object Object]类型,然后用slice截取第8位到倒一位,得到结果为 Object

Object.prototype.toString.call({}).slice(8,-1)            //"Object"
Object.prototype.toString.call([]).slice(8,-1)             //"Array"
Object.prototype.toString.call(true).slice(8,-1)          //"Boolean"
Object.prototype.toString.call(1).slice(8,-1)         //"Number"
Object.prototype.toString.call(NaN).slice(8,-1)         //"Number"
Object.prototype.toString.call().slice(8,-1)         //"Undefined"
Object.prototype.toString.call(undefined).slice(8,-1)         //"Undefined"
Object.prototype.toString.call(null).slice(8,-1)         //"Null"
Object.prototype.toString.call(function() {}).slice(8,-1)         //"Function"
Object.prototype.toString.call(new RegExp()).slice(8,-1)         //"RegExp"

相关文章

  • react-native 防止重复点击

    工具类: NoDoublePress.js 使用方法:

  • js 工具方法

    格式化时间 将数据转换为保留两位小数的数据

  • js工具方法

    js彻底冻结一个对象 除了将对象本身冻结,对象的属性也应该冻结。下面是一个将对象彻底冻结的函数。 js深拷贝一个对...

  • js工具方法

    1 数字转中文 常用正则校验和部分工具方法

  • js工具方法

    1.获取参数 functiongetParams(){ var url = location.search; /...

  • js工具方法

    转载至https://segmentfault.com/a/1190000022736837 1.邮箱 2.手机号...

  • 小程序-常用utils

    小程序-常用utils,整理常用的小程序js工具方法 剔除回车键 utils.js const delEnter ...

  • 资源整理

    正则学习 正则入门 有用的网站收集 有用的网站 js 工具库常用方法 js工具库 每日一点 Linux 每日一点L...

  • 移动端js调试工具:eruda

    移动端js调试工具:eruda使用方法: (function (params) {eruda.init()})();

  • Node.js、webpack。。。

    1.required("path") Node.js的内置路径工具,通过required("path")方法引入...

网友评论

      本文标题:js工具方法

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