基本数据类型
本文于498天之前发表,文中内容可能已经过时。如有疑问,欢迎在github中给我留言(用户名:zhangyan123)。
基本数据类型常用技巧
- 5种基本数据类型 Number、String、Boolean、null、undefined剩下的都是复杂类型
- 原生9种内建构造函数:
- 数据封装类对象:Number、String、Boolean、Object、Array
- 工具类对象:Math、Date、RegExp
- 错误类对象:error
- 使用typeof操作符可以检测数据类型,new出来的任何种类的对象都呈现为[object object],尽量使用字面量创建方式以便检测类型
- 3e+3=3000
- 数字中有两个特例 NaN!==NaN Infinity+(-Infinity)===NaN 数字%0==Infinity
- 字符串转为数字 parseInt(“10Shjksah”)===10 简便方式: +”10”
- 数字转字符串 “”+123===“123”
- 双重取反操作可以取到任何值对应的布尔值 eg:!!1===true
- 6种falsy值:
- “”
- null
- undefined
- 0
- NaN
- false
除以上falsy值之外的数据都是truthy值包括对象和falsy值字符串eg:”false”===true
- 经常使用的惰性求值法:
- ||用于检测对象是否存在若不存在赋予初始值eg: var a = b||{}||运算符可以用来填充默认值;
- 尝试从undefined的成员属性中取值将会导致TypeError异常,这时可以通过&&运算符来避免错误,eg:
flight.equipment&&flight.equipment.modela() && b() :如果执行a()后返回true,则执行b()并返回b的值,此用法与?:三元运算符经常用于简化运算步骤;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行;
a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值;
&& 优先级高于 ||
- typeof null===object ;typeof undefined===undefined
- 数组可以用于取字符串的某位字符’123’[1]===”2”,数组其实为key值从0开始递增的对象
- for-in方法是为了遍历对象而设计,会遍历原型链,注意使用hasOwnProperty()