首先我们要清楚 class的继承关系 Document 继承于 Element 继承于 Node 继承于 Object 首先 我们先研究一下 Element 中的函数作用: 01 addClas
顺晟科技
2021-06-16 11:04:47
143
网页未发布时,Google无法存储cookie。火狐没有这样的问题
通用键名不是中文
以上格式可以改为document.cookie=' myname=' data
请注意,天数已过。如果当天过了,就不存储了
设置cookie过期时间,当时间超过时,cookie不会被删除,只是不显示,或者保存在计算机上。这里还没有应用,但是一定很有用
它还包括一种情况,即它保存在本地磁盘上,然后被覆盖
这是我自己的理解。在行间事件中已经有一个要执行的函数。如果代码被执行,如果在全局范围内找不到函数,它将报告一个错误。但是,上面的过程可以理解为分配一个onclick属性,先给function(){del(this)}赋值,再给function(){console.log(this)}赋值。报告错误的步骤没有直接涉及,但是
总结1:
浏览器有一个监控机制来监控事件。常见的事件有onclick、ondblclick、onfocus和on bull,这些事件始终由浏览器监控。以上函数的过程相当于给事件赋值,但赋值是函数,但也可以理解为值。老师说的JS其实是一个取值赋值的过程,上面的过程很好的解释了这一点。
以上都是大胆的尝试,但仍然是对取值和赋值的理解。可以看到一个细节,车窗前面的on load . on load=function(){ }变色。
Console.log(窗口);可以发现onload值本身为空
这样写,不会有错误,证明btn下有多种类似window的属性,这只是猜测,因为在控制台上,值可以输出window的实现,但是看不到btn下的属性,可以和动态创建属性挂钩。
属性属于对象,上面的onclick是btn对象下的属性。在上面的过程中,在属性中存储一个值,这个值就是一个匿名函数,然后属性就变成了一个匿名函数,然后就可以调用这个函数了,函数名就是之前的属性名。
其实属性和变量没什么区别。属性属于它们前面的一个对象,现在我明白了,有属性的对象可以看作元素对象。如果在对象后面添加属性,属性名相当于变量名,函数也是数据类型。在学习创建变量之前,可以在变量中存储null、number、string、Boolean和undefined。现在函数也是一种数据类型。
这里函数的执行相当于在btn下赋值onclick属性,赋值就是函数。所以onclick变成了一个函数,
这里的函数执行相当于调用刚刚存储在btn中的函数
这里的问题和我上面发现的一样。初始值为空,只有存储了对象类型的值才能成功传入。下面使用动态创建的属性,这些属性是在btn对象下动态创建的。现在不需要变量类型,任何类型的变量值都可以传入。但是,动态创建的属性类似于上述对象的内置属性,可以这样理解。
这是动态创建的属性,现在在window对象下有一个索引属性,相当于之前window附带的onload之类的属性。
打印的数据类型是函数。其实函数也是一个数据,可以给变量或者属性赋值。如果你简单的写:object。属性,您将返回包含在该属性中的值,即属性值,而传递给该属性的值是一个函数,因此该函数将完全返回。在最后一种情况下,在对象和属性的名称后添加()相当于调用函数,与下面创建的函数略有不同,但还是可以理解的。估计默认属性名是函数名。
属性和变量是一样的,可以加载各种数据类型的值。函数也是一个变量。如果函数被加载到属性或变量中,那么这个属性或变量就变成了函数
这是上面的一个解释。如果一个函数被传递给变量A,那么A就长期成为一个函数,打印变量,返回函数的执行上下文。下面相当于调用了函数a,现在我们可以知道,其实给上面的属性传递一个函数和这里的意思是一样的,所以直接使用btn.a()是很自然的。
函数名直接传入,函数的执行上下文打印出来。但是在上面的对象下调用函数时,并不是简单的写函数名,而是添加属性对应的对象。
上面的代码有两个意思,一个是把一个函数传递给对象btn的onclick属性,另一个是在浏览器上调用的时候执行传递的函数,而下面的是直接自己调用上面的函数,另一个不是浏览器调用函数。
属性和变量的赋值和值实际上是完全相同的
上面是取值获取函数执行上下文的过程,下面是赋值的过程。将现有属性中的值取出并分配给A,即赋值将函数的执行上下文分配给A.
这是整个分析的关键部分。当函数A被调用时,会被执行到console.log(这个),窗口会被打印出来。现在这点已经变了。
现在在全局范围下创建一个变量,然后将一个函数传递给该变量。这时变量变成函数,然后调用在全局作用域下执行。前一个窗口可以省略。
这就是今天学习的精髓。Onlick()是函数,A()是函数,所有函数都是对象调用的。Onlick所属的对象是btn,A所属的对象是window。就这么简单,神奇!
同时可以总结出一个知识点。结合以上,在全局范围下创建一个函数A,属于window。打印窗口时,可以看到还有一个附加属性A,属性值是函数的执行上下文。它和动态创建属性没什么区别,完全一样。
这是最简单的操作,现在可以在窗口看到新的属性索引,中间的代码是省略的一步,这也是为什么它和动态创建属性没有区别,但是真的一样。
这是新关键词的影响,只是简单的理解
在浏览器中显示:index : function index()ain dex : function()
上面的流程都是在全局范围下创建函数,一个是匿名函数,一个是有名函数,但是也可以理解为在window下动态创建属性,但是这里有一个小跳转,一个属性叫index,一个叫aindex。的区别是前者有自己的函数名
输入类型=' button ' id=' BTN ' value=' button ' onclick=' del(this)'/这是上面代码的返回值
现在,上面的代码在点击时返回窗口
点击按钮会弹出ok,最重要的是知道解释器里的代码是什么样的。下面的代码是将在解释器中执行的代码,创建一个匿名函数并执行代码
行间事件只能调用全局范围内的函数
现在显示的是window,这是这个所指的问题,现在也是简单的理解
以上代码,以老师说的知识,无法解释。现在创建的函数不在全局范围内,可能是你自己理解错了
点击按钮后,你会找到一个函数并查找。以上是全局范围。如果您在全局范围内找不到此函数的创建,您将报告一个错误。这就是范围链的问题。跟着向上搜索。
解释器加载行间事件时,会将行间事件加载到全局范围内,所以会出现“行间事件只能调用全局范围下的函数”。
概要2:
与上述结果相比,窗口对象下的属性属性值几乎都是函数,文档下的属性值几乎都是具体值,显示的文档对象是#document,加载整个html文档
封装函数:创建cookie,删除cookie,并获取cookie的值
现在是空的,就算点了li也不会放
代码自动执行,四次返回空。点击无效
每次点击,A都会被重新分配,从而达到理想的积累效果
上面的问题是函数执行后会释放变量,所以每次函数执行时都会释放函数中存储的值,函数外打印无效。
还有一点就是上面的模式很像。在dom中,for通常用于添加事件,以便提供I值并找到指定的子元素,这与传统的for循环不同。而且和循环无关。
上面的代码可以理解为:在事件函数内部,变量不会被释放,但是一旦事件函数保存了变量,就会被释放。
还有一个定义事故价值的问题。看了这么多代码,感觉遇到这样的模式,代码都一样。定义的初始值总是在事件函数之外。这里的理解可以和for循环一样,因为前面的for循环也把初始变量放在了外面。的区别是在for循环中不会释放变量,在for循环出来的时候还是会访问原来的变量。
代码执行完毕后,如果每次点击li,只会执行中间的代码,而不会执行下面的代码console.log(getCookie())。只有再次刷新界面,才能得到想要的打印值。
以下文字是自制的,但很经典。根据代码执行顺序,可以自己理解。如果你积累了足够的经验,我相信一切都会变得简单。
这是很基础的知识,但我还是不会。两者都返回oK,其中包含隐式类型转换,这是最基础的知识。
15
2022-09
15
2022-09
15
2022-09
15
2022-09
15
2022-09
15
2022-09