数据类型转换整数
Number(var)
parseInt(var)
parseFloat(var)"100" - 0 (* / %)
// 此方法可以快速获得整数 var number = '123' - 0 // 返回的是一个123的整数 * / % 都可以数据类型转换字符串
String(var)var.toString()
- 此方法可以转换进制
- 例:
var.toString(16)转换成16进制- 只要
+有一边是字符串 就会进行字符串拼接数据类型转换布尔型
Boolean(var)- 非0都是true
基础函数
typeof(var)type返回数据类型console.log(var)打印到控制台isNaN(var)Bool判断是否为数字
数组的声明
var arr = []声明一个空数组var arr = new array()声明一个数组指针常用方法
arr.push(var)添加数据到末尾
arr.[arr.length] = var非常规写法
arr.pop(var)取出末尾数据,返回数据
arr.unshift(var)添加头部数据
arr.shift()var取出头部数据,返回数据
arr.concat(arr1,arr2)arr数组合并,返回新数组
arr.splice(index,number)arr截取数组数据并返回一个新数组,会改变原始数组
arr.splice(index,number,newdata)arr改变原始数组并可以替换数据
arr.reverse()反转数组
arr.sort数组按位排序
按照数字大小排列 升序,如果降序则 b - a
var arr = [9,8,5,2,1,3,4] arr.sort(function(a,b){ return a - b })
arr.join(‘var‘)string把数组链接成字符串,var则代表用什么链接
var arr = [1,2,3,4,5] var str = arr.join('-') console.log(str) // console.info ==> '1-2-3-4-5'
arr.slice(headIndex,tailIndex)arr把数组切片并返回一个数组ES5数组方法
arr.indexOf(var)int32*查看数组中是否由该数据,返回位置index,如果返回 -1 则表示数据不存在
arr.forEach(function(){})遍历数组
var arr = [1,2,3,4,5,6] arr.forEach(function(item,index,arr){ // 第三个参数为原始数组 console.log(index + ':' + item) }) // return // 0:1 // 1:2 // ...
arr.map(function(){})arr映射数组
var arr = [1,2,3,4,5] var newarr = arr.map(function(item,index){ return item + 1 }) console.log(newarr) console.log(arr) // 如果item +'1' 则数据会变成字符串 // 如果item + 1 则数组内的数字会相加 // 不会改变原始数组
arr.filter(function(){})arr筛选数据并返回新数组
var arr = [1,2,3,4,5,6,7] var newarr = arr.filter(function(item,index){ return item > 2 }) console.log(newarr) // 会返回大于2的数据
arr.some(function(){})Bool遍历数组并判断数据,只要有一项满足就会返回true
var arr = [1,2,3,4,5,6,7] var newarr = arr.some(function(item,index){ return item > 6 }) console.log(newarr) // 返回true 因为 7 > 6
arr.every(function(){})Bool遍历数组并判断数据,只要有一项不满足就会返回false,代码参照上一层
forin循环,一般用来遍历对象
for (var item in object){ 拿到的item是key object[item]}
字符串的声明
var str = ‘‘声明一个空字符串var str = ""声明一个空字符串,与上一层等价var str = new string(‘str‘)声明一个字符串指针字符串常用方法
string.length使用时转换成了object,返回字符串的长度
string.charAt(index)string按照索引查找字符串的内容,如果找到就返回数据,如果没有找到返回空字符串
var str = '今天天气不错呢' var newstr = str.charAt(1) console.log(newstr) // 返回了 '天' // 如果索引值超出则返回 ''
string.charCodeAt(index)unicode按照索引查找字符串的内容,并返回unicode编码值.如果没有找到就返回空字符串
var str = '今天天气不错呢' var newstr = str.charCodeAt(1) console.log(newstr) // 返回了 22825
string.substring(headIndex,tailIndex)string截取字符串并返回新字符串var str = '今天天气不错呢' var newstr = str.substring(0,5) console.log(newstr) // 返回 '今天天气不' // 如果索引超出了字符串的最大长度 则全部返回 // 如果tailIndex为空 则全部返回
string.substr(headIndex,howManyNumber)string截取字符串并返回新字符串
var str = '今天天气不错呢1' var newstr = str.substr(2,5) console.log(newstr) // 返回 '天气不错呢'
string.concat(string ...)string拼接字符串 注意: string + string 等价
string.slice(headIndex,tailIndex)string截取字符串,切片形式
string.split(‘,‘)string切割字符串,如果参数为空‘‘,则返回字符数组,如果为‘,‘则返回去掉‘,‘的字符数组
string.toLowerCase()string转换字符串为小写
string.toUpperCase()string转换字符串为大写
string.replace(oldstr,newstr)string替换字符串内容,只替换一次,可以使用正则来全局替换
var str = '今天的天气真的很不错呢,天气特别棒' var newstr = str.replace(/天气/g,'日') console.log(newstr) // 返回 '今天的日真的很不错呢,日特别棒'
string.indexOf(string)int32查找字符串中是否该内容,如果找到返回索引 index ,找不到则返回 -1
- 此函数接收两个参数,第二个参数可以设置区间
Math.random()返回 0 ~ 0.99999 的随机数字Math.round(number)返回四舍五入取整的数字Math.ceil(number)返回向上取整 1.1 = 2Math.floor(number)返回向下取整 1.9 = 1Math.pow(number,次幂)返回取幂Math.sqrt(number)返回平方根Math.abs(number)返回绝对值 绝对值为去掉数字符号的数字,比如去掉负数变为正整数Math.max(number ...)返回最大值Math.min(number ...)返回最小值Math.PI()返回 Π
new Date()返回当前时间对象
var time = new Date() console.log(time) // 返回 Mon Dec 23 2019 03:33:13 GMT+0800 (中国标准时间)var time = new Date(2019,0,1,15,33,45) console.log(time) // 返回 Tue Jan 01 2019 15:33:45 GMT+0800 (中国标准时间) // 需要注意的是0为月份 月份 0 = 1 var time = new Date('2019-01-03 22:22:22') console.log(time) // 返回 Thu Jan 03 2019 22:22:22 GMT+0800 (中国标准时间) // 也可以传入字符串时间获取操作函数
var time = new Date()首先假定赋值当前时间给timetime.getFullYear()number返回时间对象的年份time.getMonth()number返回时间对象的月份 需要注意的是如果返回 0 则是 1 月 ,以此类推time.getDate()number返回时间对象的多少号time.getHours()number返回时间对象的小时time.getMinutes()number返回时间对象的分钟time.getSeconds()number返回时间对象的秒数time.getDay()number返回一周中的第几天 需要注意的是 0 为 周日时间设置操作函数
var time = new Date()首先假定赋值当前时间给time
time.setFullYear(number)设置时间对象的年份
time.setMonth(number)设置时间对象的月份 注意 0 = 1月 的问题
time.setDate(number)设置时间对象的多少号
time.setHours(number)设置时间对象的小时
time.setMinutes(number)设置时间对象的分钟
time.setSeconds(number)设置时间对象的秒
time.setTime(时间戳)设置时间戳 时间戳为按照毫秒从1970年计算的日期
var time = new Date() time.setTime(1577044288266) console.log(time) // 返回 Mon Dec 23 2019 03:51:28 GMT+0800 (中国标准时间)
窗体操作
window.innerWidth返回浏览器窗体的宽 包含了滚动条的宽度
window.innerHeight返回浏览器窗体的高 包含了滚动条的高度
window.alert(content)浏览器提示框
window.confirm(content)Bool浏览器的询问框,返回布尔类型 确定=true,取消=false
window.prompt(alert,content)content浏览器的输入框,返回输入的内容,如果空则返回空字符串,取消返回null
window.location*返回了一个对象,对象内的href = 当前页面的地址栏地址 如果给href赋值,则会直接跳转 location.reload()则会重新加载页面
window.location.href = 'https://www.baidu.com' // 会直接跳转页面到百度
window.open(URL)此方法会打开一个URL
<div>跳转百度</div> <script> var newdiv = document.querySelector('div') newdiv.addEventListener('click',function(){ window.open("https://www.baidu.com") }) </script> <!-- 会重新打开一个百度的页面 -->
window.close()关闭当前页面操作历史记录
window.history返回一个历史记录对象 ?window.history.back() && window.history.go(-1)浏览器网址后退(如果可以的话)window.history.forward() && window.history.go(1)浏览器网址前进(如果可以的话)浏览器
window.navigator返回一个浏览器对象
window.navigator.userAgent*返回浏览器的版本信息window.navigator.appName返回浏览器的内核版本信息(除了IE都是网景,为了致敬)window.navigator.appVersion返回浏览器的版本号window.navigator.platform返回客户端的操作系统(经常不准)
创建定时器
setInterval(function(){},毫秒)每隔多少毫秒会执行一次,返回定时器的ID
var intervalID = setInterval(function(){ console.log('hello world') console.log(intervalID) },1000) // 每隔一秒钟返回 hello world 和 1
setTimeout(function(){},毫秒)倒计时定时器,只会执行一次,返回定时器ID关闭定时器
clearInterval(定时器ID)关闭间隔定时器clearTimeout(定时器ID)关闭倒计时定时器
window.onload会在所有资源加载完毕后触发window.onscroll会在浏览器滚动的时候触发window.onsize会在浏览器改变尺寸大小的时候触发document.documentElement.scrollTop获取浏览器卷起的页面文档尺寸document.body.scrollTop获取html内body被卷起的尺寸
document API
document.documentElement返回html标签document.head返回head标签ducument.body返回body标签document.getElementById(‘ID‘)通过ID返回标签信息document.getElementsByClassName(‘class‘)通过class返回标签伪数组document.getElementByTagName(‘TAG Name‘)通过标签名返回标签伪数组document.getElementByName(‘name‘)通过标签的name属性返回标签伪数组document.querySelector(‘CSS‘)按照书写CSS的方式获取标签,只能获取到满足选择器的第一个标签document.querySelectorAll(‘CSS‘)按照书写CSS的方式获取标签,返回所有满足条件的标签伪数组标签 | 元素 API
标签.innerHTML返回该标签内部的所有结构 可以进行写入赋值
标签.innerTEXT返回该标签内部的文本内容 可以进行写入赋值
标签.style返回一个标签的行内样式 可以进行写入赋值
标签.className返回一个标签的class 可以进行写入赋值
标签.getAttribute(属性名)返回一个标签的属性
标签.setAttribute(属性名,值)设置一个标签的属性
标签.removeAttribute(属性名)删除标签的属性
标签.childNodes返回标签下的所有子节点 回车和空格也会返回
<body> <div id="newdiv" class="div1" style="width: 200px;height: 200px;background-color: skyblue;"> <span>百度</span> <span>谷歌</span> <p>呵呵</p> </div> <script> var div = document.querySelector('div') var childs = div.childNodes childs.forEach(function(item){ console.log(item) }) </script> </body> <!-- 返回 #text <span>百度</span> #text <span>谷歌</span> #text <p>呵呵</p> #text 注意 : #text 是一个对象 -->
标签.children返回标签内的所有子标签
<body> <div id="newdiv" class="div1" style="width: 200px;height: 200px;background-color: skyblue;"> <span>百度</span> <span>谷歌</span> <p>呵呵</p> </div> <script> var div = document.querySelector('div') var childs = div.children for (var i = 0;i<childs.length;i++){ console.log(childs[i]) } </script> </body> <!--返回 <span>百度</span> <span>谷歌</span> <p>呵呵</p> -->
标签.firstChild返回标签内的第一个子节点 回车和空格也会返回
标签.firstElementChild返回标签内的第一个子标签
标签.lastChild返回标签内的最后一个子节点
标签.lastElementChild返回标签内的最后一个子标签
标签.previousSibling返回标签的上一个兄弟节点,如果没有返回null 回车和空格也会返回
标签.nextSibling返回标签的下一个兄弟节点,如果没有返回null 回车和空格也会返回
标签.previousElementSibling返回标签的上一个兄弟标签,如果没有返回null
标签.nextElementSibling返回标签的下一个兄弟标签,如果没有返回null
标签.parentNode返回标签的父节点
标签.attributes返回标签的所有属性节点节点操作 | Node Handle
nodeType节点类型
- 标签节点 = 1
- 属性节点 = 2
- 文本节点 = 3
- 注释节点 = 8
nodeName节点名称
- 标签节点 = 大写的标签名 P | DIV | SPAN | ...
- 属性节点 = 属性名
- 文本节点 = #text
- 注释节点 = #comment
nodeValue节点值 标签节点没有节点值
- 标签节点 = null
- 属性节点 = 属性值
- 文本节点 = 文本内容(包含换行和空格)
- 注释节点 = 注释内容(包含换行和空格)
document.createElement(标签名)创建一个标签节点document.createTextNode创建一个文本节点标签.appendChild(节点)在标签内部的尾部添加一个子节点标签.insetBefore(标签,新标签)在标签内部的子节点前面添加一个子节点标签.replaceChild(新节点,旧节点)替换标签内部的某一个子节点为新节点标签.removeChild(子节点)删除一个子节点标签.cloneNode(true | false)克隆节点,true克隆子节点,默认flase为不克隆子节点document.createDocumentFragment()返回一个document缓存,减少写页面的次数标签.clientWidth返回标签边框以内的区域 (Width + padding)标签.clientHeight返回标签边框以内的区域 (Height + padding)标签.offsetLeft↓
- 如果有定位则返回与父级左边框的距离 (left值)
- 如果没有定位则返回与页面左边的距离
标签.offsetTop↑标签.offsetWidth返回标签的 width + padding + border标签.offsetHeight返回标签的 height + padding + border获取页面的尺寸
document.documentElement.clientWidth获取页面不包含滚动条的宽度document.documentElement.clientHeight获取页面不包含滚动条的高度
鼠标事件
click鼠标左键单击mousedown鼠标左键按下mouseup鼠标左键抬起mousemove鼠标移动mouseover鼠标移入 冒泡mouseout鼠标移出 冒泡mouseenter鼠标移入mouseleave鼠标移出dbclick鼠标双击contextmenu鼠标右击键盘事件
keyup按键抬起keydown按键按下keypress按键按下后抬起(完整动作)浏览器事件
load浏览器载入完毕resize浏览器尺寸更改scroll浏览器滚动条滚动表单事件
input表单输入change表单改变,失去焦点时触发blur表单失去焦点forcus表单获得焦点submit表单提交触摸事件(Cell Phone)
touchstart点触touchmove移动touchend抬起其他事件
transitionendanimationend事件对象
window.event用来在事件里获取事件信息的对象
原文:https://www.cnblogs.com/dyjn/p/12081913.html