1. 把值赋给尚未声明的变量,该变量将被自动作为全局变量声明(即使这个变量是在函数内定义)
2. === 为绝对相等,即数据类型与值都必须相等,例如:
var x = "John";
var y = new String("John");
(x === y) // 结果为 false,因为是字符串,y 是对象
!== 绝对不等于,即值或者类型不等
3.数字+字符串 返回 字符串 ,例如:
var x="99"+9
x返回值为 999
4:for( var i in A ):用来遍历对象A的属性。
5:setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
setTimeout() :在指定的毫秒数后调用函数或计算表达式。
6:JS闭包: 例子:
functionfun(n,o) {
console.log(o);
return {
fun:function(m) {
returnfun(m,n);
}
};
}
var a = fun(0); a.fun(1); a.fun(2); a.fun(3); //打印 undfined 0 0 0
var b =fun(0).fun(1).fun(2).fun(3);//打印
var c =fun(0).fun(1); c.fun(2); c.fun(3);
首先来看第一行
var a = fun(0)
;
等同于fun(0, undefined),因为未传递第二参数,所以打印undefined
;a.fun(1)
;
因为闭包的存在,所以n依然在内存中存在,所以此式等同于fun(0, undefined).fun(1)
;
所以a.fun(1)
返回的就是fun(m, n)
;
m是传进去的参数1,n是内存中依然存在的0,所以实际返回的是fun(1, 0)
;因此打印的值为0
,;
后面两步就同理了;
注意:这一步弄明白,这道题基本就明白了。所以一定要注意。第一行的后面两步就换了一下参数。第二行就相当于一直迭代,第三行就是稍加变化,重点在这一步。a.fun(2)
;
返回fun(2, 0)
,依然打印0
;a.fun(3)
;
返回fun(3, 0)
,依然打印0
;- 所以第二行打印值为
undefined,0,0,0
第二行
var b = fun(0)
从这来看,和第一行暂时一样,打印undefined
;.fun(1)
此时和第一行第二步也是一样,返回fun(1, 0)
, 打印0
;.fun(2)
这一步其实已经变为fun(1, 0).fun(2)
,弄明白了上面,你一定知道这一步应该返回的是fun(2, 1)
;因为此时在内存中的n是1;所以打印值为1;.fun(3)
和上一步道理相同,n变为2
,即fun(3, 2)
;打印2
;- 所以第二行打印值为
undefined,0,1,2
第三行就是一二行的结合,如果弄懂了上面两行,第三行不过是一个验证的过程。也就不在多说。
输出为 undefined,0,1,1
7. 严格模式 'use strict '
8. alert(" </script>")浏览器会解析错误
当浏览器遇到</script>会认为那是结束标签,导致解析错误,此时需要转义字符 \ :alert("<\ /scriipt>")
9. alert(null==undefined ); / / true undefined值是派生自null的值的。
10. 浮点数值 进行算术计算时 精度远远不如整数。
例如:0.1+0.2 结果为 0.30000000000000004