undefined
1.使用var声明变量但未初始化
2.区分空对象指针与尚未定义的变量
3.对未初始化的变量及未声明的变量使用typeof运算符均会返回undefined
null
1.逻辑上null表示一个空对象的指针
2.使用typeof检测时会返回object
undefined与null的关系
1.undefined派生于null因此在使用“==”进行比较时会返回true
2.没有必要将变量值显示声明undefined
3.声明空对象时应将其值赋值为null
boolean
1.true为真,false为假
2.true不一定=1,false不一定=0
3.使用Boolean()进行转换
a. 转换为true
//任何非空字符串、任何非零数值、任何非空对象
b转换为false
//空字符串、0及NaN、null及undefined
string
1.特性
a.由0个或多个16位Unicode字符组成
b.单引号与双引号不能交叉使用
c.使用length属性访问字符串长度
//转义序列表示一个字符
//无法精确返回双字节字符长度
d.字符串一旦被创建,其值将不能改变,若要改变必须销毁原有字符
2.转义序列
\n:换行
\t:制表符
\b:空格
\r:回车符
\f:分页符
\\:斜杠
\’:单引号
\":双引号
\xnn:十六进制,n代表0~F
\unnnn:以十六进制代码表示一个Unicode字符
3类型转换
//toString()
使用类型
…number
…boolean
…string
…object
null和undefined没有toString()方法
//String()
String()属于强制转换, null转换的结果为"null";undefined转换的结果为"undefined";其余的如果有toString()方法,即调用该方法的时候,返回相应的结果。
//eval()
计算字符串表达式的值并以数值形式返回
number
1.进制
//十进制
//八进制
前导:0
有效序列:0~7
超出范围:前导位0被忽略,后续数值以十进制计数
//十六进制
前导:0x
有序序列:0-9, A-F
2.浮点数
//小数点后至少一位数字
//科学计数法
…小数点后带有6个0的浮点数
…以e为底*10的±N次幂
//最高精度17位小数
//缺陷
…存在舍入误差
…无法测试特定浮点数值
3.数值范围
//最小值:Number.MIN_VALUE
//最大值:Number.MAX_VALUE
//超出范围:
…正无穷:Infinity、Number.NEGATIVE_INFINITY
…缺陷:无法参与下一次计算
…检测方法:isFinite() 超出范围:false,合法范围:true
4.NaN
//含义:Not a Number:非数值
//特性
…任何涉及NaN的操作都将返回NaN
…NaN与任何数值都不相等包括其自身
…检测:isNaN() 可以转换为数值 false,不能转换为数值true
5.数值转换
//Number()
…Boolean
true为1,false为0
…null为0
…undefined为NaN
…String
只包含数字:十进制数前导0被忽略
包含有效浮点格式:浮点数值忽略前导0
包含有效十六进制格式:相同大小的十进制整数
空字符串:0
其他格式字符串:NaN
…object
valueOf()
toString()
//parseInt
…特性;
忽略前置空格
直接找到第一个非空格字符
(不是数字字符或负号:NaN)
(数字字符:解析所有后续字符,遇到非数字字符结束)
小数点不是有效数字
…参数
参数1:要解析的字符串
参数2:转换时所使用的基数
//parseFloat()
从第一个字符开始解析,遇到无效浮点格式后结束
只有第一个小数点有效
忽略前导0
十六进制数始终为0
没有小数点或小数点后全0:转换为整数
object
//定义
一组数组或功能的集合
//声明
var o=new Object()
//属性与方法
Constructor :保存用于创建当前对象的函数
hasOwnProperty(propertyName):检测给定属性在当前对象实例中是否存在
isPrototypeOf(object) :检测传入的对象是否时另一个对象的原型
propertyIsEnumerable(propertyName):检测给定属性是否能用for-in语句枚举
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
toString():返回对象的字符串表示
valueOf():返回对象的字符串、数值或布尔值表示;通常与toString()的值相同
(完)