1.ECMAScript的数据类型:
基本数据类型:Number、String、Boolean、Null和Undefined;
复杂数据类型:Object。
2.typeof操作符用来检测给定变量的数据类型。
3.对于未初始化和未声明的变量执行typeof都会返回undefined。
4.null值表示一个空对象指针,用typeof检测返回的结果是object。
5.数字0、NaN、null和undefined在进行bool比较时都会被视为false。
6.浮点数值运算会产生舍入误差:0.1+0.2!=0.3。
7.一些数值定义:Number.MIN_VALUE:5e-324
Number.MAX_VALUE:1.7976931348623157e+3.8
正无穷大:Infinity;负无穷大:-Infinity。
8.NaN是数字类型,与任何数值包括NaN都不相等,可以通过isNaN()函数判断变量是否是NaN。
9.非数值转换为数值的几个方法:Number()、parseInt()、parseFloat()。
10.Object类型是一组数据和功能的集合,每个实例都具有下列的属性和方法:
constructor:保存着用于创建当前实例对象的函数;
hasOwnProperty(属性名):属性是否是实例对象自己的而非继承来的;
isPrototypeof(实例对象):检查对象是否是对象实例的原型;
propertyIsEnumerable(属性名):属性是否是可枚举的;
toLocalString():返回对象的字符串表示;
toString():返回对象的字符串表示;
valueof():返回对象的字符串、数值或者布尔值表示。
11.逻辑非操作符可以将一个值转换为对应的布尔值。两个逻辑非操作符就会模拟Boolean()函数的功能。
12.逻辑与和逻辑或不一定返回布尔值。
13.相等操作符 双等==:先转换再比较;三等===:仅比较不转换;
14.ECMAScript函数没有签名,去参数是由包含0个或多个值得数组表示的,参数可由anguments对象访问,函数没有重载。
15.未指定返回值的函数返回的是一个特殊的undefined值。
16.基本类型值指的是简单的数据段,引用类型值指的是那些可能由多个值构成的对象。
17.引用类型的值是保存在内存中的对象,引用类型的值四按引用访问的。
18.复制变量时,对于基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为变量分配的位置上。对于引用类型,复制的实际上是个指针,两个变量将引用同一个对象。
19.instanceof操作符:variable instanceof constructor。返回结果指示变量是否是constructor对象。返回布尔值。
20.基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中;引用类型的值是对象,保存在堆内存中。
21.确定一个值是那种基本类型用typeof操作符;确定一个值是哪种引用类型可以使用instanceof操作符。
22.执行环境有全局执行环境和函数执行环境之分。每次进入一个新的执行环境,都会创建一个用于搜索变量和函数的作用域链,可以向上访问但不能向下访问。
23.JavaScript是一门具有自动垃圾回收机制的语言。标记清除、引用计数等方法。