2

概要:主要用来收集各种碰到的骚操作,将会不断更新

  • var len = t.length >>> 0; //即使在t为undefined的情况下let也会被赋值0 ,正数不变。

参考: js中表达式 >>> 0 浅析

`'aaa.url(bbb.com),bbb.url(ccc.com)'.match(/url((.+?))/)
/url((.+?))/.exec('aaa.url(bbb.com),bbb.url(ccc.com)')
'aaa.url(bbb.com),bbb.url(ccc.com)'.match(/url((.+?))/g)`

的不同

如果正则表达式不包含 g 标志,str.match() 将返回与 RegExp.exec(). 相同的结果。

  • 对于一段字符串中有多处匹配的可以用以下格式处理

while(current = reg.exec(source)) (
let [a,b] = current; //a 为匹配的字符串 b为()里的字符串
reg.lastIndex;//当前匹配到的字符串的最后的index
)

Object.entries(assets).forEach(([key,value]) => {
//遍历解构利器~~~~
})

*[1,2,3].every(check => check >2)
判断数组中的所有元素都大于2

关于for in 循环的特性
优先遍历属性名为数字的元素
obj = {name:'aaa', 1: 'bbb'}
for(let key in obj){
if(!Object.hasOwnProperty(key)) break;

console.log(key)

}

结果是 1 name

取得函数参数的个数
fun(a,b,c)

fun.length =3

判断是否为数值型

Number.isNaN(input)

关于 String.replace的正则用法

replace 本身是JavaScript字符串对象的一个方法,它允许接收两个参数:

replace([RegExp|String],[String|Function])
第1个参数可以是一个普通的字符串或是一个正则表达式

第2个参数可以是一个普通的字符串或是一个回调函数

如果第1个参数是RegExp, JS会先提取RegExp匹配出的结果,然后用第2个参数逐一替换匹配出的结果

如果第2个参数是回调函数,每匹配到一个结果就回调一次,每次回调都会传递以下参数:

result: 本次匹配到的结果

$1,...$9: 正则表达式中有几个(),就会传递几个参数,$1~$9分别代表本次匹配中每个()提取的结果,最多9个

offset:记录本次匹配的开始位置

source:接受匹配的原始字符串

例:

'AVCXaa'.replace(/(\[A-Z\])(\[A-Z\])/g, 
function () {

console.dir(arguments)

})

打印结果为:

0: "AV" //本次匹配内容
1: "A"  //第一个括号的匹配内容
2: "V"  //第二个括号的匹配内容
3: 0    //其实位置
4: "AVCXaa"  //整体字符
0: "CX"
1: "C"
2: "X"
3: 2
4: "AVCXaa"

用途: fontSize => font-size


codehunter
137 声望11 粉丝