字符串和正则表达式
字符串连接
连接字符串有很多方式,常见的有:
1.str = "a" + "b" + "c";
2.str = "a"; str += "b"; str += "c";
3.str = ["a","b","c"].join("");
4.str = "a"; str = str.concat("b","c");
当连接少量字符的时候,这些方法的运行速度都很快,使用时可以选择最熟悉的做法。随着需要合并的字符串的长度和数量增加,有一些方法开始展现出优势。
加(+)和加等(+=)操作符
使用 += 操作符的时候,会产生临时字符串。它的运行过程如下:
1.在内存中创建一个临时字符串。
2.连接后的字符串 “onetwo” 被复制给该临时字符串。
3.临时字符串与 str 当前的值连接。
4.结果赋值给str。
但是如果把字符串写成:
str += "one"; str += "two"; 就可以避免产生临时字符串。
写成 str = str + "one" + "two"; 可以达到同样的效果。
正则表达式优化
正则表达式的工作原理:当你创建了一个正则表达式对象,浏览器会验证你的表达式,然后把它转化为一个原生代码程序,用于执行匹配工作。
(你可以把正则对象赋值给一个表达式,来避免重复 创建函数 这一步骤
(这一章还是暂时省略吧,我正则用的不多。以后再看)
快速响应的用户界面
用于执行 JavaScript 和更新用户界面得进程通常被成为 ”浏览器 UI 线程“。UI 线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲。每次用户进行操作的时候,就会将操作加入队列。
js 的执行、UI 更新、重绘重排 等操作都会被加入队列中。如果用户在队列中任务正在执行的时候,对界面进行操作,那么就会u出现界面无响应的情况。
事实上,大多数浏览器在 JavaScript 运行时会停止把新任务加入 UI 线程的队列中,也就是说,JavaScript 任务必须尽快结束,以避免对用户体验造成不良影响。
浏览器限制
浏览器限制了 JavaScript 任务的运行时间。此类限制分两种:调用栈大小限制和长时间运行脚本限制。
它的基本原理是,浏览器记录一个脚本的运行时间,并在达到一定限度时终止它。
使用定时器让出时间片段、
--待续