注意:
一、值为null或undefined时,执行==null或者!=null进行比较操作
二、布尔类型
false:NaN值(非数值的值),null,undefined,数值0,关键字false
true:除此之外其他的任何值都被解析成true
null与undefined的区别
1、Number(null); //0 Number(undefined); //NaN
2、null表示"没有对象",即该处不应该有值; undefined表示缺少值,但此处应该有一个值,但没有定义,可以重新赋值
三、类型的比较
==与===
==比较之前,强制进行类型转换
1=="1"; //true
1==="1"; //false
四、变量的声明
i=0; //隐式声明 具有全局作用域
var i=0;//显示声明 局部变量,仅在声明该变量的函数内可见
五、对象字面量
var box={"name":"xiaoming","age":16};
两种方式访问:一:box['name'] ; 二、box.name;
A.页面加载执行方法
JQuery(document).ready(function(){});
B.JavaScript格式化数值
var num=123.123456;
num.toFixed(2);//123.12 四舍五入
var num2=123.123456;
num2.toPrecision(8);//123.12346 四舍五入
C.JavaScript内置数学运算
Math.round()
六、闭包就是能够读取其他函数内部变量的函数。
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
function f1(){
n=999;
function f2(){
alert(n);
}
return f2; //闭包
}
print(f1.n); //输出结果为 undefined 直接访问,结果为undefined
闭包的影响:
在不同的JavaScript解释器实现中,由于解释器自身的缺陷,使用闭包可能造成内存泄漏,内存泄漏是比较严重的问题,会严重影响浏览器的相应速度,降低用户体验,甚至会造成浏览器无相应等现象。
JavaScript的解释器都具备垃圾回收机制,一般采用的引用计数的形式,如果一个对象的引用计数为零,则垃圾回收机制会将其回收,这个过程是自动的。
在闭包中,因为局部的变量可能在将来的,某些时刻需要被引用,因此垃圾回收机制不会处理这些被外部引用到的局部变量,这样的情况使得垃圾回收机制得出其引用计数不为零,从而造成内存泄漏。
七、获取具有特殊含义id元素,使用\\反斜线转义:
<script>var n = $("#\\$specialId").lenght;</script>
<div id="$specialId">T-Rex</div>