js基础

1.javascript九九乘法表

我们可以用双重for循环,外层初始值设为i,i从1开始,到9结束,自增1

内层从初始值设为j,j从1开始,小于等于外层的i,自增1

for (var i = 1;i<=9;i++){
   for (var j = 1;j<=i;j++){
   document.write(i+'*'+j+'='+(i*j)+'&nbsp ');
}
   document.write('<br>');//换行
2.四种方法可以判断数据类型

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

 

 

posted @ 2022-05-22 21:45  宋072  阅读(26)  评论(0)    收藏  举报