这两天把JS的Number类型过了一遍,真是遍地是坑啊,如果这里出一些面试题,我100%要栽在这里。
NaN,undefined,null,Infinity,isNaN(),parseInt(),isFinite(),在ECMAScript中,任何数值除以非数值都会返回什么?是NaN。
这些个知识点啊,我还得反复的看,没个完。。。
日行一步,今天往前一步,学习String类型:
定义,由0或多个16位Unicode字符组成的序列,叫字符串。
字符字面量,也叫转义序列。详见第33页
如果字符串中包含双字节字符,length属性可能无法返回精确的字符数目。
重点: ECMAScript中的字符串是不可变的!!
某些旧版本浏览器拼接字符串很慢的原因,是因为改变变量保存的字符串,首先我销毁原来的字符串,再用包含新值的字符串填充该变量。
(真心的不看不知道啊,我写这些年JS,不知道这个知识点)
var lang = 'java';
lang = lang + 'script';
过程如下:
1、先创建一个容纳10字符的新串;
2、然后在这个新串中填充'java'和'script';
3、最后一步销毁原来的字符串'java'和'script';
========================
这个过程,在现代的浏览器中也绝对是不小的性能开销。
看来我以后要尽量避免在for循环中以 += 的形式拼接dom节点了。