js基础
我们可以用双重for循环,外层初始值设为i,i从1开始,到9结束,自增1
内层从初始值设为j,j从1开始,小于等于外层的i,自增1
typeof、instanceof、constructor、Object.prototype.toString.call()、jquery.type()
3.js的事件
DOM事件的三种级别
1. DOM 0级事件
DOM 0级时间分两种,一是直接在标签内直接添加执行语句,二是定义执行函数
<input type="text" id="test">
<input type="button" value="button" οnclick="alert(document.getElementById('test').value)">
<script>
document.getElementById('button').οnclick=function(){
alert(document.getElementById('test').value);
}
</script>
2.DOM 2级事件
2级事件有3个参数,分别为 事件名称,执行函数,指定冒泡还是捕获,默认是false,冒泡。
element.addEventListener('click',function(){},false)
3.DOM 3级事件
同DOM2级一样,只不过添加了更多的事件类型,鼠标事件、键盘事件
element.addEventListener('keyup',function(){},false)
4.DOM的事件类型
事件类型分两种:事件捕获、事件冒泡。
事件捕获就是由外往内,从事件发生的顶点window开始,之后是document对象,逐级往下查找,一直到目标元素。
事件冒泡就是由内往外,从具体的目标节点元素触发,逐级向上传递,直到根节点window。
5.DOM事件的事件流(事件传播)
事件流就是,事件的传播过程。
DOM完整的事件流包括三个阶段:事件捕获阶段、目标阶段和事件冒泡阶段。
事件通过捕获到达目标元素,这个时候就是目标阶段。从目标节点元素将事件上传到根节点的过程就是第三个阶段,冒泡阶段
6.自定义事件
我们也可以通过 new Event()自定义事件
var eve = new Event('test'); //通过new Event 创建事件 dom.addEventListener('test', function () { //注册事件 console.log('test dispatch'); }); setTimeout(function () { dom.dispatchEvent(eve); //触发事件 }, 1000);
7.let、var、const区别
Var是块级作用域,值可以更改,多次定义会被顶替,拥有变量提升特性,可以不赋值
Let 函数级作用域,值可以更改,不能多次定义,无法变量提升,可以不赋值
Const 函数级作用域,是一个常量,值不能为空,一经定义无法更改,无法变量提升,必须赋值
注意:const如果定义的是一个数组或者对象,它的值就是一个指针,数组或对象里面的值是可以更改的,并不影响这个指针
8.闭包
现象
当内容函数被保存到外部时,将会产生闭包,导致原油作用域链不释放,造成内存泄露。
闭包的作用 实现公有变量
// 实现一个累加器 使用闭包 function add() { var count = 0; function demo() { count++; console.log(count); } return demo(); } var counter = add(); counter(); // 输出1 counter(); // 输出2 可以做缓存 // 使用闭包做一个缓存 function test() { var num = 100; function a() { num++; console.log(num); } function b() { num--; console.log(num); } return [a, b]; } var myArr = test(); myArr[0](); // 输出101 myArr[1](); // 输出100

浙公网安备 33010602011771号