Skip to content

JavaScript 方法速查

对象、数组、字符串、数值常用方法 + 正则汇总。

一、类型与原生

  • Object.prototype.toString.call(obj) === '[object Array]' 判断类型(现代用 Array.isArray)。
  • Object.freeze(obj) 冻结;obj.hasOwnProperty('prop') 自身属性。
  • 循环属性:for-in / Object.keys()(键)/ Object.values()(值)/ Object.entries()(键值对)。
  • :class="{'font-big': showSearch}":style="[{'font-size': x}]"(小程序支持度低)。
  • 时间:new Date().toLocaleString('chinese', { hour12: false })

二、对象

  1. 清空:Object.keys(obj).forEach(k => delete obj[k])Object.assign
  2. 合并:Object.assign(obj, ...sources)
  3. 单个:obj.str = 'str'

三、数组

  • indexOf/lastIndexOf 查下标(对象数组按引用匹配);concat 拼接不改原。
  • join(',') 转字符串(默认逗号)。Array.from(new Set(arr)) 去重。new Array(n).fill(true) 定长填充。
  • reduce 累加;fill 填充;Array.isArray
  • slice(start,end) 提取子数组不改原;splice(start, deleteCount, ...items) 删+插改原,返回被删。
    • arr.splice(index, 0, 'a','b') 固定位置添加。
增删位置方法说明
末尾添加push(...items)末尾多添,改原
开头添加unshift(...items)开头多添,改原
末尾移除pop()末尾移除,改原
开头移除shift()开头移除,改原
反转/排序reverse / sort改原(Unicode 升序,可自定义)
遍历方式特点
for支持 break,return 需方法包裹
for-in不推荐(遍历可枚举属性)
for-of遍历值,支持 break
forEach无 break 无返回
map返回新数组,需 return
数组表达式行为
every全满足才 true
some任一满足即短路 true
filter返回满足条件的元素组成的 []
find返回首个元素,无则 undefined
findIndex返回首个下标,无则 -1

js
[1,2,3].join(',')              // "1,2,3"
`${birthday.slice(0,4)}-${birthday.slice(4,6)}-${birthday.slice(6,8)}`
objArr.splice(index, 1)
arr.map((item,idx)=> item>2 ? item : item)  // 箭头省{}不能显式return
arr.filter(item => item > 2)

四、字符串

  1. match(re) 匹配返回字符;startsWith/endsWith/includes 返回 Boolean。
  2. indexOf/lastIndexOf(仅一个时返回一致,下标正向)。
  3. trim/trimLeft/trimRight/repeat/replace/replaceAll/concat 不改原。
  4. toLowerCase/toUpperCase/toLocaleLowerCase(土耳其等环境不同,默认用不带 locale)。
  5. replace(/-/g, '/')/gi 不区分大小写。
  6. padStart(len, str) 前填充;padEnd(len, str) 后填充。
  7. 包装方法 str.sub() 等(上标下标下划线删除线斜体,已不推荐,可 v-html)。

字符串截取三兄弟对比

方法规则负数大小反推荐度
substr(start,len)起始下标 + 长度截取负值返空❌ 弃用,与其他不一致
substring(start,end)下标包前不包后负转 0对调参数⚠️ 一般
slice(start,end)下标包前不包后支持负(倒 -1)不对调,返空✅ 推荐

split 转数组:无参/不符→[原串]''→字符拆解;空串 ''.split(',')[''](需先判空)。

js
"5".padStart(3, "0")          // "005"
str.replace(/abcd/gi, "一二")  // 同 /aBcD/ig
str.slice(2, -2)              // 倒 -1 起,不包后
"".split(",")                 // [''], 需先判空

五、数值 / Math

  • num.toFixed(n) 转字符串保留 n 位(近似四舍五入,银行家舍入,不准确)。
  • Math.round 四舍五入;Math.ceil 向上;Math.floor 向下。
  • Math.random() 0-1 不含 1(通常 16 位)。
  • Math.max/min
  • parseInt 转整数;parseFloat 转浮点。
  • Math.ceil(Math.random()*100) 生成 0-100 随机数。
js
2.55.toFixed(1)               // "2.5"(向下,银行家)
(-2.55).toFixed(1)            // "-2.5"(操作符优先级,负数不加括号返数字)

六、正则速记

  • [] 任一;[^] 非;. 单字符(不含换行);*+{1,} ? {n}a|b 或。
  • \d 数字 \D 非数字;\w[a-zA-Z0-9_] \W\s 空白 \S\b 单词边界 \B
  • \u4e00-\u9fa5 汉字;^[-+]?\d+(\.\d+)?$ 正负数;^[A-Za-z0-9]+$ 数字字母。
  • <[^>]+> html;\n 换行 \t 制表 \r 回车。

© 2026 开发速查