小知识积累

120 阅读2分钟

css错误

无效值错误和无效属性错误


获取a链接携带的参数

  // 获取链接携带参数 uuid 
  var strHref = location.href;
  var intPos = strHref.indexOf("?");
  var strRight = strHref.substr(intPos + 1);
  var s_getID = strRight.split("&") || strRight.split(" ");
  var uuid = s_getID[0].slice(5); 


for循环的变量提升

let

 for (let x = 0 ; x < 10; x++) {      console.log(x)  //34行      setTimeout(function () {        console.log(x) // 36行      })    }


外部 let 

  let i = 0;
    for (; i < 10; i++) {      console.log('在外部声明i+++++', i)
      setTimeout(function () {        console.log(i)      })    }




var 

  for(var n = 0;n<10;n++){    console.log("27行",n)    setTimeout(() => {      console.log('29行的for循环中声明并且使用定时器',n)    }, 1000);      }



外部 var 

var i = 0;
    for (; i < 10; i++) {      console.log('在外部声明i+++++', i)
      setTimeout(function () {        console.log(i)      })    }




闭包

for (var i = 0 ; i < 10; i++) {  (function (i) {    setTimeout(function () {      console.log(i)    })  })(i)}




在 let 定义下 打印出的1-10,计时器打印为1-10

    var 定义下的打印 1-10 ,计时器打印为10

计时器总是在当前的同步代码执行完成后开始运行

let 和 const 是声明的块级作用域

var 声明的变量在代码执行之前就会被处理,用var声明的变量的作用域是它当前的执行上下文,它可以是嵌套的函数,也可以是声明在任何函数外的变量。如果你重新声明一个 JavaScript 变量,它将不会丢失其值。

flex与overflow的冲突问题

在布局垂直滚动条的小块时遇到的问题:flex的垂直和y轴的溢出隐藏出现冲突,花了半小时找到问题。

hide()与remove()

hide() 如果被选的元素已被显示,则隐藏该元素。

remove() remove() 方法用于从下拉列表删除选项。

在页面中如果不需要显示dom元素,那么这两者没有区别但是如果需要循环拿到dom元素的值,但是同时使用了hide()隐藏不需要的一些元素,此时进行dom的遍历就会将隐藏的dom也拿到其中的值,但是如果使用了remove()在遍历取值的之后就不会取到已经remove的元素。