博主近期在看《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():将任何类型的值转换为字符串
-字符字面量![字符字面量](https://img-/0227221702192?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjIyMjcwODc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)-字符串的特点- **字符串一旦创建,他们就不能改变**- **改变字符串: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()方法的返回值相同