共计 3154 个字符,预计需要花费 8 分钟才能阅读完成。
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里 P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024 年最新 Web 前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合 3 年以上经验的小伙伴深入学习提升的进阶课程,涵盖了 95% 以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加 V 获取:vip1024c(备注前端)
正文
while((match = reg.exec(str)) !== null) {
num++
}
console.log(num) // 5
search() 方法使用表达式来搜索匹配,然后返回匹配的位置。
var str =“Visit W3School”;
var n = str.search(/w3school/i); //6
replace() 方法返回模式被替换处修改后的字符串。
replace([RegExp|String],[String|Function])
var str =“Visit Microsoft!”;
var res = str.replace(/microsoft/i,“W3School”); //Visit W3School!
其第一个参数可以是正则表达式,如果想全局替换需添加全局参数
‘abc’.replace(/[abc]/,‘y’) // ybc
‘abc’.replace(/[abc]/g,‘y’) // yyy 全局替换
在第二个参数中,也可以引用前面匹配的结果
‘abc’.replace(/a/,‘$&b’) // abbc KaTeX parse error: Expected ‘EOF’, got ‘&’ at position 1: &̲ 引用前面的匹配字符,’&b’-‘ab’
‘abc’.replace(/(a)b/,‘$1a’) // aac &n 引用前面匹配字符的分组,‘$1a’-‘aa’
‘abc’.replace(/b/,‘$’‘) // aac
‘
引用匹配字符前面的字符
,
′
` 引用匹配字符前面的字符, ‘
‘引用匹配字符前面的字符,′`’-‘a’
‘abc’.replace(/b/,“$’”) // acc
′
引用匹配字符后面的字符
,
”
‘ 引用匹配字符后面的字符,”
′引用匹配字符后面的字符,“’“-“c”
如果第 2 个参数是回调函数,每匹配到一个结果就回调一次,每次回调都会传递以下参数
result: 本次匹配到的结果
$1,…$9: 正则表达式中有几个 (),就会传递几个参数,$1~$9 分别代表本次匹配中每个() 提取的结果,最多 9 个
offset: 记录本次匹配的开始位置
source: 接受匹配的原始字符串
‘abc’.replace(/w/g, function (match, $1, $2) {
return match +‘-’
})
// a-b-c-
match()方法也会返回匹配的结果,匹配结果和 exec 类似
‘abc’.match(/abc/) // [‘abc’, index: 0, input: abc]
‘abc’.match(/abd/) // null
如果有全局参数(g),match 会返回所有的结果,并且没有 index 和 input 属性
‘abcabcabc’.match(/abc/g) // [‘abc’,‘abc’,‘abc’]
split()方法使用正则,可以用指定符号分隔字符串,并返回数据
‘a,b.c’.split(/,|./) // [a, b, c]
3. 修饰符:像 /microsoft/i,斜杠外面的 i
g 正则遇到第一个匹配的字符就会结束,加上全局修复符,可以让其匹配到结束
i 正则默认是区分大小写的,i 可以忽略大小写
m 正则默认情况下,^ 和匹配行首和行尾,不理解就看例子
/jing$/ // 能够匹配 ‘yanhaijing,不能匹配‘yanhaijingn’
/jing$/m // 能够匹配 ‘yanhaijing,能够匹配‘yanhaijingn’
/^jing/ // 能够匹配‘jing’,不能匹配‘njing’
/^jing/m // 能够匹配‘jing’,能够匹配‘njing’
4. 括号表达式
()、[]、{} 的区别
() 的作用是提取匹配的字符串。表达式中有几个 () 就会得到几个相应的匹配字符串。比如 (s+) 表示连续空格的字符串。
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示字符文本要匹配英文字符和数字。
{}一般用来表示匹配的长度,比如 s{3} 表示匹配三个空格,s[1,3]表示匹配 1~3 个空格。
5. 元字符(Metacharacter)是拥有特殊含义的字符
. 匹配除了换行符(n)以外的任意一个字符 = [^n]
w = [0-9a-zA-Z_]
W = [^0-9a-zA-Z_]
s = [tnv]
S = [^ tnv]
d = [0-9]
D = [^0-9]
^ 在 [] 外表示匹配开头的意思
^abc // 可以匹配 abc,但是不能匹配 aabc
$ 表示匹配结尾的意思
abc$ // 可以匹配 abc,但是不能匹配 abcc
上面提到的 b 表示单词的边界
abcb // 可以匹配 abc,但是不能匹配 abcc
b:如 abcd@ , d 与@之间就可以用 b 匹配,回车符和单词字符之间当然也可以用 b 匹配,其宽度为 0
JavaScript
js 的基本类型有哪些?引用类型有哪些?null 和 undefined 的区别。
如何判断一个变量是 Array 类型?如何判断一个变量是 Number 类型?(都不止一种)
Object 是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?
JS 常见的 dom 操作 api
解释一下事件冒泡和事件捕获
事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?
对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?
this 有哪些使用场景?跟 C,Java 中的 this 有什么区别?如何改变 this 的值?
call,apply,bind
显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链
创建对象的多种方式
实现继承的多种方式和优缺点
new 一个对象具体做了什么
手写 Ajax,XMLHttpRequest
变量提升
举例说明一个匿名函数的典型用例
指出 JS 的宿主对象和原生对象的区别,为什么扩展 JS 内置对象不是好的做法?有哪些内置对象和内置函数?
attribute 和 property 的区别
document load 和 document DOMContentLoaded 两个事件的区别
JS 代码调试
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加 V 获取:vip1024c(备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事 IT 行业的老鸟或是对 IT 行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加 V 获取:vip1024c(备注前端)
[外链图片转存中…(img-ouoiU5tn-1713317804869)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事 IT 行业的老鸟或是对 IT 行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
原文地址: Js-w3school(2024(7),今日头条前端面试难吗