Effective JavaScript 读书笔记 3 隐式的强制转换
2014-01-24 14:18
239 查看
3 + true = ??
Javascript 对类型错误出奇的宽容,上面的结果是4
除非是 null.x ,会抛出异常。
结果为null的变量在算术运算中不会导致失败,而是被隐式的转为0
而标准的库函数 isNaN 则很不靠谱, isNaN(NaN) ; // true
你可以随时通过检查一个值是否等于其自身的方式来测试该值是否是NaN。以下函数是很好的概括:
function isReallyNaN(x){
return x !==x ;
}
Given :
function point (x,y){
if(!x){
x = 320;
}
if(!y){
y = 240;
}
return "{ x:"+ x +",y:"+y+"}";
}
point (0,0) // {x:320,y240}
此函数忽略任何为假值的参数,包括0
Javascript 对类型错误出奇的宽容,上面的结果是4
除非是 null.x ,会抛出异常。
结果为null的变量在算术运算中不会导致失败,而是被隐式的转为0
而标准的库函数 isNaN 则很不靠谱, isNaN(NaN) ; // true
你可以随时通过检查一个值是否等于其自身的方式来测试该值是否是NaN。以下函数是很好的概括:
function isReallyNaN(x){
return x !==x ;
}
Given :
function point (x,y){
if(!x){
x = 320;
}
if(!y){
y = 240;
}
return "{ x:"+ x +",y:"+y+"}";
}
point (0,0) // {x:320,y240}
此函数忽略任何为假值的参数,包括0
相关文章推荐
- [Effective JavaScript笔记]第3条:当心隐式的强制转换
- [Effective JavaScript 笔记]第59条:避免过度的强制转换
- [Effective JavaScript 笔记]第37条:认识到this变量的隐式绑定问题
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1
- [Effective JavaScript 笔记] 第9条:始终声明局部变量
- [Effective JavaScript 笔记]第41条:将原型视为实现细节
- 【自学笔记】web前端 javascript笔试题 关于各种==的比较,js隐式转换
- [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法
- [Effective JavaScript 笔记]第53条:保持一致的约定
- [Effective JavaScript 笔记]第56条:避免不必要的状态
- [Effective JavaScript 笔记]第57条:使用结构类型设计灵活的接口
- [Effective JavaScript 笔记]第58条:区分数组对象和类数组对象
- [Effective JavaScript 笔记]第65条:不要在计算时阻塞事件队列
- [Effective JavaScript 笔记]第2章:变量作用域--个人总结
- [Effective JavaScript 笔记] 第6条:了解分号插入的局限
- JavaScript程序设计_读书笔记1
- [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码
- [Effective JavaScript 笔记]第54条:将undefined看做“没有值”
- [Effective JavaScript 笔记]第33条:使构造函数与new操作符无关
- [Effective JavaScript 笔记]第18条:理解函数调用、方法调用及构造函数调用之间的不同