12.js正则表达式有哪些操作方法?正则常用的修饰符?
test()
exec()
字符串对象的正则:
match()
search()
replace()
split()
正则常用的修饰符:g,i,m
13.谈谈下列js正则表达式的区别?贪婪模式和非贪婪模式?捕获组和非捕获组?先行断言和先行否定断言?
/^abc/ 匹配以abc开头的字符
/[^abc]/ 表示除了a、b、c之外的所有其他字符。
/[^]/ 相当于*通配符。
/a-z/ 按照字面量匹配a-z字符,不表示范围。
/[a-z]/ 匹配a到z之间的任意一个小写字母。
/[1-31]/ 匹配1到3而不是,1到31。
常见模式的简写方式的含义:
简写 等价于
\d [0-9]
\D [^0-9]
\w [A-Zz-z0-9_]
\W [^A-Zz-z0-9_]
\s [\t\r\n\v\f]
\S [^\t\r\n\v\f]
\b 匹配词的边界
非贪婪模式:*? 和 +? 默认贪婪!
非捕获组:?: (表示不匹配该组返回的内容,即匹配结果中不包含该括号中的内容) 默认捕获!
先行断言:x(?=y) 表示x只有在y前面才匹配
先行否定断言:x(?!y) 表示x只有不在y前面才匹配
14.用一个正则表达式来获取 html 的标签名,标签属性,标签内容?
var html = <span class="active">正则测试</span>
答:
var tag = /<(\w+)([^>])>(.*?)(\/\1)/;
var match = tag.exec(html);
match[1];
match[2];
match[3];
15.谈谈 JSON 和 XML 的区别?JSON.Stringfy() 和 JSON.parse() 的作用?
16.浏览器的“开发者工具”,每个面板的作用?
17.new命令的原理是什么?
使用new命令时,后面的函数不是按照正常来执行。而是做4件事:
1、创建一个新的空对象;
2、将空对象的原型(_proto_)指向构造函数的prototype;
3、将该空对象赋值给构造函数内部的this;
4、执行构造函数内部代码。
18.函数的原生方法 call() 、apply() 和 bind()的用法和区别?
19.setTimeout(f,0)的含义和作用?函数f会立即执行吗?
setTimeout(f,0)有几个非常重要的用途:
1、调整事件的触发顺序;
2、让js代码分块执行,减轻性能压力...
20. javascript 严格模式(use strict;)和普通模式有哪些区别?为什么要设计出严格模式?
21.网页加载的过程是怎样的?js代码写在body底部的两个好处?
js代码写在body底部的两个好处:提高页面加载速度、防止js代码报一些不必要的错误。
22.说说<script>标签的 defer 属性和 async 属性的作用?使用场合?
有了defer属性,外部js文件的下载不会阻塞页面渲染。解析html的同时,并行下载带有defer的外部脚本文件。
asysc属性也可以防止“阻塞效应”。它是启用另一个进程下载外部脚本。
23.什么是重流和重绘?有哪些注意事项或者优化技巧?