Discuss
/
JavaScript
/
一些问题
一些问题
解释和编译现在区分不太明显,JIT也需要预热才会编译;
NaN的判断通常是计算结果为Number时用isNaN()判断,一般不会拿string去当参数;
forEach应该是5.1引入的,IE<9不支持;
确实不会添加分号,一会改个别的例子;
null和undefined要特殊对待,undefined在低版本浏览器中还可以用undefined=true
呢;
parseInt是全局函数:parseInt('123.456') => 123,parseFloat()和Number()等价;
特殊字符用\
转义始终没有问题,建议加上,当然不加也可以。
- 1
fighterleslie
廖老师您好,您的教程非常精彩,对许多理念的阐述让人茅塞顿开。不过白璧微瑕,教程中的有些观点我并不是很认同,希望与您交流:
这句话有两点问题:
实际上,在浏览器中由于 JavaScript 与 UI 渲染共用一个线程,为了不阻塞页面的加载和渲染,通常是建议把 <script> 放在页面底部,而非 <head> 部分
“唯一” 的说法是不正确的,因为我们完全可以利用 NaN != NaN 的特点自己写个函数判断 NaN 。而且,在判断 NaN 时,全局函数 isNaN() 恰恰是不靠谱的,因为它使用了隐式类型转换: isNaN("I'm not NaN") // true
forEach() 方法是 ES5 规范引入的,定义在 Array.prototype 上。
这里不会添加分号(当下一行的开头为 ( , [, + , -, / 五个字符时),所以仍然是合法的语句
Hmm. 个人理解是:除了 null 和 undefined, 一切皆可像(act as)对象那样
这里是笔误吧,应该是用 Number() parseInt(false) // NaN parseFloat(false) // NaN Number(false) // 0
在正则表达式中,'-' 在 [] 里面是特殊字符,在 [] 外面不是特殊字符,在 [] 外边不用转义。