2023/1/12
concat() 方法用于连接两个或多个数组
箭头函数不绑定this,默认去上一层作用域去找this,有用处
var 全局定义变量,变量会给到window
2023/1/6
学方老师昨天直播推荐的正则表达式30分钟入门教程
//匹配ip地址
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
后向引用用于重复搜索前面某个分组匹配的文本
零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西(指定一个位置)
负向零宽断言只是想要确保某个字符没有出现,但并不想去匹配它
\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字
\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词。
同理,我们可以用(?<!exp),零宽度负回顾后发断言来断言此位置的前面不能匹配表达式exp:
(?<![a-z])\d{7}匹配前面不是小写字母的七位数字。
一个复杂的例子:(?<=<(\w+)>).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容。
2023/1/5
听方老师讲2022年前端,vercel,figma公司
Figma-UI设计器 知乎-Figma是什么
听了一点js面试题。
- setTimeout()打印循环
for(var i=1;i<4;i++){
setTimeout(function(){
console.log(i);
},1000);
}
i为全局变量,会先执行完循环(js是单线程机制,先执行同步代码,最后执行异步代码,setTimeout是异步调用),
此时i的值已经为4,之前每次循环放入异步队列中的函数就会依次打印出i的值,即连续打印3次4
解决方法:
- 用let,let在循环中每一个值都会单独存在一个独立的作用域中不会被覆盖掉
- 闭包(不会)
for(var i=1;i<4;i++){
(function(j){
setTimeout(function(){
console.log(j);
},1000*j);
})(i);
}
- .this指向谁
注意use script;严格模式