笔记(一)
1. var a={name:"HTML",status:true};
var b=a;
b.name="css"
最后b会变成{name:"css",status:true}
a也会变成{name:"css",status:true}
因为a和b是公用一个堆栈!无论改了a还是b都是改了堆栈的值,就会影响到另一个。
2. 关于 this
的指向,记住最核心的一句话:哪个对象调用函数,函数里面的this指向哪个对象。
3. input框的radio只有name属性的值一样才会实现互斥。
4. return true:返回正确的处理结果。
return false返回错误的处理结果以及组织代码继续向下执行。
return:将把握权返回给页面
js中return false作用一般是用来取消默认动作 / 阻止提交表单 / 阻止继续执行下面的代码。
5. autoplay="autoplay"无法自动打开视频可以试试在video标签中加入autoplay loop muted playsinline。
6. 伪元素只能用于双标签,如<div> </div>.
7. position:absolute, 不出现在正常的文档流中,“会飘起来”,默认把元素转化成块级元素;float:left,float:right等浮动元素也会默认把元素转化成块级元素。
8. box-sizing:border-box 相当于IE盒子模型,width=padding+border+content;
9. element.style.width只能获取到内联样式,如果需要获取外部样式或者嵌入样式,标准浏览器使用getComputedStyle(s,null).backgroundColor; 第一个参数为获取到的id,第二个指伪类,没有就写null,然后就是属性。
IE使用element.currentStyle.width;
10. 删除某个元素下的所有字节点
(1).element.parentNode.removeChild(element);
(2)
var leg = resultParas.childNodes;
for( let i = leg.length-1; i>=0; i--){
resultParas.removeChild(leg[i]);
}
如果正序开始删除的话,元素会删不完整,这是因为你从前面把第一个索引0删除后,第二个元素索引会变成0,但是此时i=1,所以当前索引为0的数没有被删除,但是从后面开始删除就不会有这个问题啦。
11. js调用函数时加括号与不加括号的区别
函数名其实就是指向函数体的指针 ,不加括号, 可以认为是查看该函数的完整信息, 不加括号传参,相当于传入函数整体
加括号 表示立即调用(执行)这个函数里面的代码(花括号部分的代码)。
12. addEventListenter添加多个不同事件。例
window.addEventListener('pushState', function () {
fun();
});
window.addEventListener('popstate', function () {
fun();
});
window.addEventListener('replaceState', function () {
fun();
});
添加三个事件
['pushState','popstate','replaceState'].forEach(function(item,index){
window.addEventListener(item, fun);
})
13. radio的值被选中: object.checked == true .
14. 修改button等标签的文字: document.querySelector('button').innerHTML = '修改的内容';
15. btn.onclick = displayMessage() 与 btn.onclick = displayMessage; ()为函数调用运算符,加了()会立即调用函数,无论有没有点击。匿名函数的代码也不是直接运行的,它的代码在函数体内。
16. 想要修改<img>里面的src属性值的时候,使用了setAttribute,然后发现不能修改原来的src值,反而新增了一条src。但使用.src却可以修改,可以正常使用。
引用的回答"setAttribute这个方法仅是去设置对象的属性,可以给属性取任意的名称,来存放一个Value,其作用倾向于去存储Value到对象中,而.src则更倾向于去指定对象加载某个源,更像对象的action,所以不能将.src和setAttribute弄混了,总结起来可以这样认为:.src可以认为是对象的动作,setAttribute只是设置对象的属性,不能让对象产生动作。"
不知道解释的对不对,但基本理解了。
17. 滚动条是可见的,原因是我们的“全窗尺寸画布”包含 <body>
元素的外边距(margin
),使得文档比窗口略宽。 为使滚动条消失,需要删除 <body>
元素的 margin
并将 overflow
设置为 hidden
。