js前端小问题(一)

108 阅读2分钟

1. onchange和oninput

onchange是当当前元素失去焦点(blur)之后触发的事件,
oninput是针对<input>、<select>、<textarea>等元素上的事件,只要改变了元素值就会触发
注意: oninput会针对元素值的变动而实时触发

2. 时间对象中的month

月份传入的值为0~11,(再传入的时间月份加1就是实际的月份)如果大于11,则会进位;

//传入年月日
    var time=new Date(2021,9,14)
    console.log(time)//显示的是10月份
    console.log(time.getMonth())//获取到的是9
//当前时间  2021.9.14
    var time=new Date();//相当于传进去的年月日为:2021,8,14
    console.log(time)//显示的是9月份
    console.log(time.getMonth())//月份获取的是8 

3.获取页面的垂直滚动距离

window.scrollY//在IE下是undefined
document.body.scrollTop//在页面没有DOCTYPE声明的时候获取浏览器滚走的距离,IE9及以下都是0
document.documentElement.scrollTop//在页面有DOCTYPE声明的时候使用

//jQ中页面的垂直滚动距离
$(window).scrollTop();//括号里面写参数,则是设置滚动距离

4.全局变量

    var a = 123
    fn(a)
    function fn(a) {
        a = 456;//这是局部变量
        console.log(a)//456,局部变量
    }
    document.write(a);//123,输出的是全局变量

5.正则表达式中的元字符

  • \d 数字
  • \D 非数字
  • \s 空白符
  • \S 非空白符
  • \w 数字字母下划线
  • \W 非数字字母下划线
  • . 非换行字符(除了换行外的任意字符)

6.js中的全局函数

  • eval() 计算js字符串,并把它作为脚本代码来执行
  • isNaN() 用来判断是否是NaN;是的话返回true
  • isFinite() 用来判断一个数是不是有限数,finite是有限的意思,Infinity无限的
  • Number() 把对象的值转换为数字
  • parseInt()
  • parseFloat()
  • String()
  • escape() 对字符串进行编码
  • unescape() 对由escape()编码的字符串进行解码
  • encodeURI() 把字符串编码为URI
  • decodeURI() 解码某个编码的URI
  • encodeURIComponent() URI组件
    1. decodeURIComponent()