js常用的基本类型:Undefined,null,string,number,boolen 还有一种复杂的数据类型 object。判断类型可以用 typeof.
确定值是否是有穷的,isFinite,判断是否是数字 isNaN。其中undefined转换为NaN,null转换为0。在处理整数的时候,常用的是parseInt。可能有两个参数,第一个是转换的数字,第二个是数字的进制数。
parseFloat 和parseInt的区别:parseFloat会一直解析到末尾或者遇到第一个无效浮点字符为止。始终会忽略前导的零。只有一个参数。值转换为字符串的方式:toString(), null ,undefined 没有toString()的方法,toString(),可以有个参数的进制数的参数。String()
前置递增和递减 与后置递增和递减的区别是:后置递增和递减是在求值之后执行的。
位操作符:非~,对正数,是负数减去1。位与&,位或 |,异或^,左移<<。左移不会影响符号位。有符号的右移>>,无符号的右移>>>。无符号的右移,正数无区别。
布尔操作符:逻辑非 !,逻辑与&&,逻辑或 ||。
除法 /,求余%
全等===和相等==的区别是不进行操作数的强制转换。
for in 用于枚举对象的属性。
基本类型和引用类型的区别:基本类型保存在内存栈上。引用类型保存在堆上,变量中保存的实际上一个指针。
函数的参数传递都是按照值那种类型。
typeof一般用于检测基本类型,而对引用类型的检测一般用 instanceof.
当代码在一个环境中执行,会创建变量对象的一个作用域链,他是为了保证对执行环境有权访问的所有变量和函数的有序访问。
延长作用域链可以使用try catch,和 with。没有块级作用域。
js的垃圾回收机制:标记清除,引用计数(存在循环引用)。
管理内存的方式 解除引用 设置为null