💡 一般情况下,通过js来修改样式的时候,需要统一,不然就都修改class样式,不然就都修改行间样式
所以在< script>标签中运行js代码时,有时需要等html加载完成后再运行js代码,不然会报错的
这种时候就需要将js代码写在 window.onload 中了
window.onload = function(){ var oBtn = document.getElementById('btn1'); function 名字 (){ ... } }这句话的意思通俗理解就是:
别家行内样式别加行间的JS事件通过html加进去的自定义属性,浏览器是不认的,会报错 但是通过js加进去的属性,是可以的
alert('abc' + 12 + 5 + 'ef'); // 'abc12' + 5 + 'ef' // 'abd125' + 'ef' // 'abd125ef' alert('abc' + (12 + 5) + 'ef'); // 'abc' + 17 + 'ef' // 'abc17' + 'ef' // 'abc17ef'innerHTML
设置标签中的html内容,可以直接是文字,也可以是带标签的内容如:< h1>xxx< /h1>,这样出来的效果就是h1的样式
0/1 <—> 翻译 <—> 能懂的语言
赋予js操作html的能力。其实在js里面,就是document,用来创建元素/改变元素/删除元素等
赋予操作浏览器本身的能力。其实在js里面,就是window。用来弹个窗口啊什么的
undefined类型:
不然是真的没有定义不然是虽然定义了,但是没有给值(是空的)NaN 和 NaN 不相等 要判断是不是NaN,可以用 isNaN(xxx);
通俗点说就是:子函数可以使用父函数的局部变量
function aaa() { // 父函数 var a = 12; function bbb (){ // 子函数 alert(a); } bbb(); } aaa();这时的alert可以弹出来12。这就是闭包
循环中
break 中断 执行到它之后,整个循环就都结束了
continue 继续 执行到它之后,跳过本次,执行后面的
真:true/非零数字/非空字符串/非空对象
假:false/数字零/空字符串/空对象/null/undefined
就是取非行间样式(< style>< /style>标签里面的样式)
currentStyle(),但是这个方法只兼容IE
getComputedStyle(a, b),这个方法兼容Chrome、FF
参数a:需要获取哪个物体的样式参数b :这个参数随便往里面写啥都行,比如说null/false/数字啊啥的,随便。 getComputedStyle(oDiv, null).width那怎样在所有浏览器下面都兼容呢??
可以在外部封装一个函数,用来判断是浏览器是否含有这个属性
// IE var oDiv = document.getElementById('div1'); alert( oDiv.currentStyle.width); // Chrome、FF getComputedStyle(oDiv, null).width // 都兼容呢? // 封装函数 function getStyle(obj, name){ if(obj.currentStyle){ // IE return obj.currentStyle[name] }else{ // Chrome、FF return getComputedStyle(obj, false)[name]; } } window.onload = function(){ var oDiv = document.getElementById('div1'); // ⚠️ 但是这块取的样式必须是单一样式(如:backgroundColor / borderWidth),而不能是复合样式(background / border) alert(getStyle(oDiv, 'width')); }先删除,后插入
splice(开始,长度,元素)删除
splice(开始,长度)插入
splice(开始,0,元素) var arr = [1, 2, 3, 4, 5, 6] // 删除:splice(起点,长度) arr.splice(2, 3) // 1,2,6 // 插入:splice(起点,长度,元素) // 从第2个开始,删除0个,插入a,b arr.splice(2, 0, 'a', 'b'); // 1,2,a,b,3,4,5,6 // 从第2个开始,删除2个,插入a,b arr.splice(2, 2, 'a', 'b'); // 1,2,a,b,5,6排序
sort var arr = ['float', 'width', 'alpha', 'zoom']; arr.sort(); // alpha, float, width, zoom var arr = [3,344,12,88,54,99,73]; arr.sort(); console.log(arr.sort());可以看到上面的这个结果并不是按照数字从小到大的顺序排列的。是因为sort()排序只认字符。那如何帮助它认数字呢??
var arr = [3, 344, 12, 88, 54, 99, 73]; arr.sort(function (n1, n2) { if (n1 < n2) { // 这块并不一定是-1,只要是个负数就可以 return -1; } else if (n1 > n2) { // 这块并不一定是1,只要是个正数就可以 return 1; } else { return 0; } }); console.log(arr); var arr = [3, 344, 12, 88, 54, 99, 73]; arr.sort(function (n1, n2) { // 其实这块这样简写也可以,因为是负数/正数/0都是由n1和n2来决定的 return n1 - n2; }); console.log(arr);转换类
(数组).concat(数组) 数组连接join(分隔符) 用分隔符,组合数组元素,生成字符串字符串splitdemo
concat var a = [1, 2]; var b = [3, 4, 5]; a.concat(b); // 1,2,3,4,5 join var arr = [3, 4, 5]; arr.join('-'); // 3-4-5charAt():取字符串的某一位,是兼容的
overflow: hidden
溢出隐藏 给一个元素中设置overflow:hidden,那么该元素的内容若超出了给定的宽度和高度属性,那么超出的部分将会被隐藏,不占位清除浮动 一般而言,父级元素不设置高度时,高度由随内容增加自适应高度。当父级元素内部的子元素全部都设置浮动float之后,子元素会脱离标准流,不占位,父级元素检测不到子元素的高度,父级元素高度为0因此,需要给父级加个overflow:hidden属性,这样父级的高度就随子级容器及子级内容的高度而自适应
解决外边距塌陷 父级元素内部有子元素,如果给子元素添加margin-top样式,那么父级元素也会跟着下来,造成外边距塌陷因此,给父级元素添加overflow:hidden,就可以解决这个问题了