博主近期在看《Javascript高程(第三版)》,总结一些自己不很了解的知识点
typeof类型
- typeof 是一个操作符而不是函数
Undefinded类型
var message;//这个变量声明之后默认取得了undefined值
//age这个变量并没有声明
//var age;
alert(message);//"undefined"
alert(age);//产生错误
//对未初始化的变量执行typeof操作符会返回undefined值,而对未声明的变量执行typeof操作符同样也会返回undefined值。
alert(typeof message);//"undefined"
alert(typeof age);//"undefined"
//总结:对未初始化和未声明的变量执行typeof操作符都返回了undefined值;
Null类型
- 如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值
- undefined值是派生自null值的
Boolean类型
- Boolean类型的字面值true和false是区分大小写的。True和False只是标识符
Number类型
- 使用IEEE754格式来表示整数和浮点数值
八进制(0开头)字面量在严格模式下是无效的
-浮点数值
- 保存浮点数值需要的内存空间是保存整数数值的两倍
- 浮点数值最高精度是17位小数
//例如:0.1+0.2的结果不是0.3,而是0.30000000000000004; console.log(0.1+0.2==0.3);//false
-数值范围
- 最小数值:Number.MIN_VALUE
- 最大数值:Number.MAX_VALUE
- isFinite():确定一个数值是不是位于最小值和最大值之间
-NaN(非数值)
- 任何涉及NaN的操作都会返回NaN
- NaN与任何值都不相等,包括自身
- isNaN():在接收一个值后,会尝试将这个值转化为数值
-数值转换
String类型
String():将任何类型的值转换为字符串
-字符字面量
-字符串的特点
- 字符串一旦创建,他们就不能改变
- 改变字符串:1、销毁原来的字符串;2、用另一个包含数值的字符串填充该变量
-转换为字符串
- toString():返回字符串的一个副本
toString():通过传递技术,toString()可以返回以二进制、八进制、十六进制,乃至其他任意有效进制格式表示的字符串值
var num = 10; alert(num.toString()); // "10" alert(num.toString(2)); // "1010" alert(num.toString(8)); // "12" alert(num.toString(10)); // "10" alert(num.toString(16)); // "a"
转型函数String()转换规则
- 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果
- 如果值是null,则返回null
- 如果值是undefined,则返回undefined
var value1 = 10; var value2 = true; var value3 = null; var value4; alert(String(value1)); //"10" alert(String(value2)); //"true" alert(String(value3)); //"null" alert(String(value4)); //"undefined"
Object类型
- 对象是一组数据和功能的集合
- 对象通过执行new操作符
var o = new Object();
- Object的每个实例都具有下列属性和方法
- constructor:保存着用于创建当前对象的函数
- hasOwnProperty(propertyName):检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中propertyName必须以字符串形式指定
- isPrototypeOf(object):检查传入的对象是否是当前对象的原型
- propertyIsEnumerable(propertyName):检查给定的属性是否能够使用for-in语句来枚举。其中propertyName必须以字符串形式指定
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
- toString():返回对象的字符串表示
- valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同