| |
|
| |
<!-- 主流浏览器 --> 内核
|
| |
IE trident |
| |
Chroem webkit/blink |
| |
firefox Gecko |
| |
Opera presto |
| |
Safari webkit |
| |
<script type="text/javascript" src=""></script> |
| |
变量( variable) |
| |
var a; (声明变量) let |
| |
a=100 |
| |
document.write(a); |
| |
|
|
弱类型语言、动态语言、基于原型的面向对象
|
| |
|
| |
ECMAscript 语法规范 |
| |
DOM 文档对象模型 |
| |
BOM 浏览器对象模型 |
| |
|
| |
click 点击事件 |
| |
js 语句 ;结束 |
| |
变量 作用 是用来储存值得 |
| |
变量的声明 var a,b,c='abc', |
| |
变量的赋值 a = 2; |
| |
变量的命名 |
| |
输出在控制台输出 console.log(a) |
| |
|
| |
console.log()会在浏览器控制台打印出信息 |
| |
console.dir()可以显示一个对象的所有属性和方法 |
| |
|
| |
<!-- 基本数据类型(栈)-->
|
| |
undefined 表示未定义未负值 null清空内容() |
| |
|
| |
number数字类型 |
| |
|
| |
string 字符串类型用“” 要换行拼接 用+号 |
| |
|
| |
false假(0) 和 true真(1) |
| |
检测数据类型(typeoof a) |
| |
|
| |
<!-- 系统对话框 -->
|
| |
alert(1234)弹出框 |
| |
|
| |
确认框 confirm(你确定) 接收 真 假 |
| |
提示 默认值 |
| |
输入框 prompt(输入银行卡 ,“123” ) 输入内容 |
| |
|
| |
|
| |
引用类型 (堆) |
| |
array 数组 Function 函数 object对象 |
| |
|
| |
array 数组 |
| |
|
| |
属性 下标 0开始 |
| |
console.log(a[0]) |
| |
|
| |
Function 函数 代码块 |
| |
|
| |
名字(随便起) |
| |
Function sayhi(){ |
| |
var a = 1 |
| |
console.log(a) |
| |
} 函数需要执行才会显示 |
| |
函数调用 函数名加() |
| |
|
| |
|
| |
object 对象 无序 |
| |
|
| |
js类值对象 date 时间对象 math数学对象 RegExp 正则 |
| |
|
| |
方法 : |
| |
|
| |
|
| |
length 长度 |
| |
continue; 跳过本轮循环 |
| |
break;终止整个循环 |
| |
default:默认语句 |
| |
for(){}循环 |
| |
|
| |
while(条件(a>5)){ a--}循环 当什么 满足括号里面的条件执行循环体 |
| |
|
| |
do{}while() |
| |
|
| |
window.onload=function(){} |
| |
|
| |
return 函数返回值 遇到return函数就不再往下执行了 |
| |
|
| |
this.style.background= |
| |
|
| |
|
| |
|
| |
<!-- 对象 创建 以及调用-->
|
| |
json对象 创建 var car={key:value ,} 注意一定要用逗号隔开 |
| |
空对象创建方式 var car= new object() 给空对象添加属性 car.name='张三', |
| |
对象调用方法: car.key 点的方式调用, car[key]来调用 |
| |
两种调用方法的区别[]调用方式能调用 Number类型的key元素,还能调用变量类型的元素。 |
| |
|
| |
<!-- js 对象 -->
|
| |
内置对象:string 对象,Array对象,math数学对象,Date日期对象,regExp正则表达式 |
| |
自定义对象:1、json形式对象 2、new object 3、工厂函数 4、构造函数 |
| |
原型属性 prototype 完成继承和共享 |
| |
|
| |
constructor--构造器--分辨对象属于哪个构造函数 console.log(元素.coustructor) |
| |
instanceof---左边是对象<-->右边是构造器--判断是否相等 |
| |
Object.keys()---查看所有一个对象本身---的所有属性----返回一个数组; |
| |
|
| |
<!-- this 的指向-->
|
| |
纯粹的函数中--this代表 window |
| |
json对象的this---》指向上一层对象 |
| |
事件函数中this代表当前发生事件的元素对象 |
| |
构造函数中--this带表实例化函数对象、 |
| |
this的存储嵌套使用 var that=this |
| |
|
| |
改变this的指向call和apply--->完成继承 |
| |
call函数 把this指向改变成了car 可以说继承了car |
| |
say.call(car,6,7); |
| |
say.apply(car,[6,7]); |
| |
相同之处都可以改变this指向完成继承 |
| |
不同之处--参数的设置不同 |
| |
|
| |
<!-- bind()--> |
| |
this值会被绑定到传给bind()函数的值 |
| |
|
| |
|
| |
<!--创建数组--> |
| |
数组:数组可以是储存一组或者一系列相关数据的容器 |
| |
访问数组的数据用索引(下标),从0开始 |
| |
数组可以储存任何类型的值 |
| |
<!--构造法创建数组--> |
| |
1.var arr=new Array('1',55,true) |
| |
<!--字面量方式创建--> |
| |
var arr1=[] |
| |
|
| |
数组长度arr.lenth |
| |
可以手动截取数组的长度 减小数组长度 |
| |
增加数组长度 对数组没有什么影响增加的都是undefined |
| |
清空数组 arr.lenth=0 |
| |
|
| |
|
| |
<!--数组的方法-->
|
| |
push()在数组的末端添加一个元素,返回新的长度, |
| |
unshift()在数组的第一个位置添加一个元素,返回新的长度, |
| |
pop()删除数组的最后一个元素,返回被删除的元素, |
| |
shift()删除第一元素,返回被删除的元素 |
| |
splice(index(从第几个开始删除),num(删除几个,不删除就用0代替),ele(在删除的地方添加元素))返回被删除的元素 |
| |
|
| |
reverse()--用于颠倒数组中元素的顺序,返回改变后的数组 |
| |
|
| |
sort() --不是按照大小排序,而是按照对应字符串的assic编码顺序排序, |
| |
如果按照其他顺序排序可以在括号里输入函数function(a,b){return b-a }反序 |
| |
join()--以参数作为数组每一项的分割符,组成一个字符串返回,不提供参数默认为逗号分割 看返回值 |
| |
join('')把数组转换成字符串 |
| |
concat()---连接一个或者多个数组 返回新的数组 |
| |
slice(start(从哪开始下标),end(结束))留头不留尾 不影响原数组 |
| |
--选取数组的一部分,返回新的数组 , 如果就传一个数字就是选取到到最后 |
| |
forEach(function(ele(数组的每一项),index(下标),arr(整个数组)){})遍历数组的方法 |
| |
|
| |
|
| |
<!--Array.isArray-->(x)判断是不是数组 返回true false |
| |
|
| |
<!--字符串的方法-->
|
| |
1.charAt(index)--返回下标处的字符 |
| |
2.charCodeAt(index):返回字符的unicode编码整数 charCodeAt编码大于225为中文字符小于则为英文字符 |
| |
()代表指定位置上的字符 unicode编码 |
| |
3。fromCharCode():传Unicode 编码 返回相应的字符 |
| |
4.indexOf():返回string对象第一次该出现字符的字符位置 如果没有出现则返回-1 |
| |
5.lastIndexOf();返回string对象中最后一次出现该字符的字符位置 |
| |
通常拿4,5组合做判断是否是只出现过一次,4==5则只出现一次 |
| |
<!--字符串截取--> |
| |
6.substr(index,unm)从index开始截取,截取unm个, 一个参数截取到最后 |
| |
7.substring(start,end)从start开始截取,到end结束,留头不留尾 一个参数截取到最后 |
| |
8.toLowercase():返回一个字符串,该字符串被转换为小写字母 |
| |
9.toUpperCase():返回一个字符串,该字符串被转换为大写字母, |
| |
10.split():将一个字符串分割为数组,不传参 --把字符串分割为数组一项,传''把字符串分割为数组的每一项 |
| |
("")把字符串转换成数组 |
| |
11.replace(old(要被替换的字符),new(替换成***)):返回根据正则表达式进行文字替换后的字符串的复制 |
| |
|
| |
|
| |
<!--**--------------事件------->
|
| |
onclick 点击事件 |
| |
ie和谷歌中window.onmousewheel 鼠标滚轮滚动事件 |
| |
ff火狐中window.addEventListener('DOMMouseScroll',function (){},true ) 滚轮滚动事件 |
| |
|
| |
window.onresize 窗口大小改变事件 |
| |
window.onscroll 页面滚动事件 |
| |
window.onhashchange hash值改变事件 |
| |
|
| |
onfocus 获取焦点事件 |
| |
onblur 失去焦点事件 |
| |
onmousemove 鼠标移入一直触发 鼠标移动事件 |
| |
clientY 鼠标Y轴 clientX 鼠标X轴 可视网页 pageX 鼠标X轴 pageY 鼠标Y轴 整个网页 |
| |
onmouseover js鼠标移入 触发一次 this。className移入子元素也触发事件 |
| |
onmouseout 鼠标移出 鼠标移入 |
| |
|
| |
onmouseenter 鼠标移入 和上面一组的区别 是移入子元素不触发事件 只在自身触发事件 |
| |
onmouseleave 鼠标移出 |
| |
|
| |
onmousedown 事件会在鼠标按键被按下时发生。 |
| |
offsetX -- offsetY 事件源发生事件的位置 |
| |
鼠标右键e.button=2 左键button=0 滚动条button=1 |
| |
onmouseup 鼠标抬起时触发 |
| |
ondblclick 双击事件 |
| |
oncontextmenu 鼠标右键事件 |
| |
return false e.preventDefault() 阻止右键菜单出现 |
| |
|
| |
document.onkeypress 键盘事件 |
| |
onkeyup 键盘抬起事件 |
| |
onkeydown 键盘按下触发 可以连续触发 任意键盘按键 不能区分大小写 |
| |
onkeypress 键盘按下触发 可以连续触发 字母类键盘按键 对应asc码的 能区分大小写 |
| |
onkeyup 键盘抬起触发 不可以连续触发 |
| |
document/window.onresize 整个窗口大小改变事件 |
| |
document/window.onscroll 页面滚动事件 scrollY滚动条Y轴的距离 |
| |
window.pageYOffset 滚动条Y轴的距离 |
| |
|
| |
|
| |
<!-- 文本类事件-->
|
| |
oninput 表单内容改变事件 |
| |
form表单 -- action: 地址提交 method:提交方式 |
| |
onchange 事件 表单元素改变事件 下拉框,复选框,单选框 |
| |
selectedIndex----选取下标 |
| |
onsubmit 表单提交时触发事件 |
| |
docoument.forms[0]--获取页面中表单 |
| |
onreset--表单重置时触发 |
| |
var x=confirm(确认重置表格吗) |
| |
retrun -- false 阻止默认事件 |
| |
e.preventDefault()阻止默认事件 |
| |
onselect ---文本输入框的文字被选中事件 |
| |
|
| |
<!-- **Date日对象期--> |
| |
new Date()获取系统时间 |
| |
<!--setInterval定时器-->重复执行 |
| |
setInterval(function,时间(2000),函数的实参),每两秒获取一次系统时间 |
| |
toLocaleString()--日期和时间转换为本地格式的字符串 |
| |
clearInterval(定时器名字)清除定时器 |
| |
<!--延时器 --> |
| |
setTimeout (fn,延迟时间,参数) 只执行一次 |
| |
clearsetTimeout暂停延时器 (输入延时器名字) |
| |
|
| |
<!--日期对象的方法-->
|
| |
var myDate=new Date();(2018,09,20)(2018-09-20) |
| |
获取年、 设置 |
| |
var year=myDate.get(获取)/set(截取)Fullyear();//2018 |
| |
获取月 |
| |
var month=myDate.getMonth();//0-11 月要加1 |
| |
获取日 |
| |
var days=myDate.getDate();//0-31 |
| |
获取星期 |
| |
var week=myDate.getday();//0-6 |
| |
获取小时 |
| |
var hour=myDate.getHours();//0-24 |
| |
获取分钟 |
| |
var minutes=myDate.getMinutes();//0-59 |
| |
获取秒 |
| |
var second=myDate.getSeconds();//0-59 |
| |
获取毫秒 |
| |
var millisecond=myDate.getMilliseconds();//0-999 |
| |
<!--getTime() 获取距离1970年1月的毫秒数--> |
| |
document.write(myDate.getTime()) |
| |
<!-- 方法中加UTC代表世界时间--> |
| |
var second=myDate.getUTCHours() |
| |
|
| |
|
| |
<!--转换格式--> |
| |
toLocaleString()--把日期和时间转成本地格式字符串; |
| |
toLocaleDateString()--把日期转成本地带格式字符串 |
| |
toLocaleTimeString()--把时间转成本地带格式字符串 |
| |
toGMTString()--把日期和时间转成格林威治的字符串 |
| |
|
| |
|
| |
<!--时间戳--> |
| |
浏览器的储存 localStorage.buy |
| |
|
| |
<!-- 数学对象math-->
|
| |
属性 |
| |
math.PI----π---圆周率---3.14 Math.PI*r*r(圆的面积) |
| |
Math.E自然常数,是数学科的一种法则。约为2.1782 |
| |
2的平方根 Math.SQRT2--1.414 |
| |
|
| |
<!-- 数学方法--> |
| |
1、随机数 Math.random()--返回0-1之间的随机数包含0不包含1 |
| |
随机数公式a-b之间的随机数整数 |
| |
Math.floor(Math.random()*(b-a)+a) |
| |
2、向下取整Math.floor() |
| |
3、向上取整Math.ceil() |
| |
4、四舍五入 Math.round() |
| |
5、最大值 math.max(x,y,z) |
| |
6、最小值 math.min(x,y,z) |
| |
7.x的y次幂 Math.pow(x,y) |
| |
8平方根 Math.sqrt(7); |
| |
|
| |
|
| |
<!-- 正则表达式-->
|
| |
(Regular Expression、regex),是用来描述匹配一系列符合某个句法规则的字符串 |
| |
主要 是检测数据验证,文本替换、内容检索与过滤等 |
| |
|
| |
<!-- 正则表达是的创建 --> |
| |
1、构造法 |
| |
var reg =new RegExp("[0-9]{4}"); |
| |
2、字面量创建 |
| |
var reg1=/^[1-9][0-9]{4,9}&/;qq号的; |
| |
|
| |
<!-- 正则的方法:--> |
| |
test():匹配一个字符串是否符合正则表达式,成功返回true失败返回false |
| |
varx=reg.test(tval) |
| |
exec();如果发现匹配就返回一个 数组,否则返回null |
| |
|
| |
<!-- 正则给字符串用的方法:--> |
| |
str. match(正则表达式)--找到一个或者多个正则表达式的匹配值,返回一个数组 |
| |
search(正则表达式)--搜索与正则表达式相匹配的值,返回值得下标值,如果没有返回-1 |
| |
split()--按照正则表达式分割字符串 |
| |
replace(正则表达式,替换成字符串)--替换字符串 |
| |
|
| |
|
| |
<!-- 正则的书写规则;-->https://c.runoob.com/front-end/854 正则网站https://c.runoob.com/front-end/854 |
| |
修饰符/.../g --g-全局匹配 |
| |
/.../i --i -不区分大小写 |
| |
^ ---开头 /^[]{}$/ |
| |
$ ---结尾 |
| |
* 任意次,可任意看做{0,} |
| |
? 0次或者一次,可以看做{0,1} |
| |
+ 一次或者任意次,可以看做{1,} |
| |
{m} 正好m次 |
| |
{m,} 至少m次 |
| |
{m,n}至少出现m次 最多n次,默认是按最多次数 |
| |
{m,n}? 按最少次数匹配 |
| |
[^a]非a |
| |
[] --限定某一位上字符的取值范围, |
| |
任意字符:【abc】a、b、c中任意的字符 |
| |
组合:【a-z0-9A-Z】 |
| |
排除:【^a】 |
| |
\w --匹配字母数字下划线的字符【a-zA-Z0-9】 |
| |
\W --匹配除字母数字下滑线之外的字符 [^a-zA-Z0-9] 和上面刚好相反 |
| |
\d --匹配数字[0-9] |
| |
\D --匹配非数字 |
| |
\s --匹配空白字符,空格制表符和换行符; |
| |
() --正则表达式的分组 | --正则的逻辑 或 |
| |
. --代表除了换行以外的任何字符 |
| |
\ --表示转义符 |
| |
|
| |
|
| |
|
| |
|
| |
<!-- Error.name的六种错误信息--> |
| |
1、EvalError;eval()的使用与定义不一致 |
| |
2、RangeError:数值越界 |
| |
3、referenceError;非法或者不能识别的引用数值; |
| |
4,SyntaxError;非法语法解析错误 |
| |
5,TypeRrror;操作数据类型错误 |
| |
6、URIError:URI处理函数使用不当 |
| |
|
| |
|
| |
<!-- dom增 删 改-->
|
| |
增加属性 |
| |
1、自带属性 |
| |
divs.id='box'; |
| |
divs.className='text' |
| |
2.自定义属性setAttribute |
| |
divs.setAttribute('index','0'); |
| |
|
| |
3元素添加内容 |
| |
inpus.value='sss' |
| |
divs.innerHTML--设置文本和标签 |
| |
outerHTML--替换标签和文本内容 |
| |
|
| |
<!-- 创建元素添加到页面 --> |
| |
创建元素var divs=document.createElement('div') |
| |
var hs=document.createElement('h3') 创建元素 |
| |
1.父对象.appendChild(追加的对象) 插入到父元素 |
| |
|
| |
|
| |
<!-- 操作元素的属性--> |
| |
1、自带属性 |
| |
2、自定义属性 |
| |
getAttribute 获取自定义属性 |
| |
var imgindex=img.get(获取)Attribute('index') |
| |
setAttribute 设置属性 添加属性 |
| |
img.set(设置)Attribute('src'(属性名),'img2.jpg'(属性值)) |
| |
classList.add 在元素中添加一个或多个类名。 |
| |
.contains(class)返回布尔值,判断指定的类名是否存在。 |
| |
.remove(class1, class2, ...)移除元素中一个或多个类名。 |
| |
.toggle(class, true|false)在元素中切换类名。第一个参数为要在元素中移除的类名,并返回 false。 |
| |
如果该类名不存在则会在元素中添加类名,并返回 true。 |
| |
移除属性 |
| |
img.remove(移出)Attribute(属性) |
| |
hasAttribute('属性')---判断当前元素节点是否包含指定属性,返回布尔值 |
| |
instanceof是Java的一个二元操作符(运算符),也是Java的保留关键字。它的作用是判断其左边对象是否为其右边类的实例,返回的是boolean类型的数据。用它来判断某个对象是否是某个Class类的实例。 |
| |
用法:boolean result = object instanceof class |
| |
|
| |
|
| |
|
| |
|
| |
Object.prototype.hasOwnProperty.call(obj, 'bar'); // true 判断'bar'是不是obj原型链上的属性 |
| |
|
| |
dom一起设置多个样式: |
| |
box.style.cssText='width:200px;height:200px;' |
| |
insertBefore 元素前面插入元素: |
| |
父元素.insertBefore(插入的元素,参照物) |
| |
|
| |
|
| |
|
| |
<!-- dom --> 最大的对象是document |
| |
document.title---网页的标题 |
| |
document.body---网页标签 |
| |
document.documentElement--整个文档 html |
| |
document.URL ---返回当前文档的url网站的地址 |
| |
document.bgColor--body的背景 |
| |
document.fgColor--文字颜色 |
| |
<!-- 如何获取样式--> |
| |
ie浏览器--获取css样式e.currentStyle.width(属性) |
| |
谷歌和火狐FF浏览器:getComputedStyle(对象,null).color(属性) |
| |
|
| |
<!--元素对象 属性--> |
| |
nodeType--节点类型 |
| |
//1--代表元素 |
| |
//3--代表文本节点 data代表节点内的文本 |
| |
8--代表注释节点 |
| |
nodeName---元素节点名--LI--大写 |
| |
---文本节点--#text |
| |
---注释节点--#comment |
| |
<!-- * 获取节点--> |
| |
获取第一个节点firstChild 获取元素中间加一个Element |
| |
console.log(two.firstChild); |
| |
获取最后一个节点 lastChilid |
| |
console.log(two.lasttChild); |
| |
获取下一个兄弟节点 nextSibling |
| |
console.log(two.nextSibling); |
| |
获取前一个兄弟节点 previousSibling |
| |
console.log(two.previousSibling); |
| |
所有的子节点childNodes |
| |
console.log(two.childNodes); |
| |
父节点--父元素parentNode |
| |
console.log(two.parentNode); |
| |
返回有定位属性的父元素----offsetParent |
| |
console.log(two.offsetParent) |
| |
返回所有子元素children[] |
| |
console.log(two.children) |
| |
|
| |
<!-- 获取元素--> |
| |
item |
| |
document.querySelector("body>.list>li") 只能选第一个 |
| |
document.querySelectorAll("body>.list>li") 集合节点列表 静态 |
| |
var a = document.createElement("li") 添加标签 创建一个元素 |
| |
|
| |
<!-- * 删除元素--> |
| |
replaceChild 替换 |
| |
替换节点 父元素.replaceChild(要替换的,被替换的) |
| |
removeChild 删除 |
| |
删除节点 父元素.removeChild(删除的元素); |
| |
remove 自毁 |
| |
删除元素本身 元素本身.remove() |
| |
|
| |
<!-- * 事件冒泡--> |
| |
addEventListener事件监听 冒泡 捕获 |
| |
addEventListener(事件,执行函数,true) false冒泡 true捕获 |
| |
ff// e.stopPropagation() 阻止冒泡 |
| |
ie// window.event.cancelBubble=true; 阻止冒泡 |
| |
<!-- ** ---事件委托--> |
| |
** e.target---事件委托 把事件绑定在父元素上,通过e.target来操作发生事的元素 |
| |
box.innerHTML=e.target.innerHTML |
| |
e.type-----返回事件类型 |
| |
e.offsetX--e.offsetY--鼠标在事件元素上发生的位置 |
| |
|
| |
|
| |
<!-- 获取整个可视页面的高度 --> |
| |
left=(window.innerwidth/2-自身宽度的一半)+'px' |
| |
top=(window.innerheight/2-自身高度的一半)+'px |
| |
|
| |
offsetWidth和offsetHeight 获取包括元素的宽度和高度包括padding和边框 |
| |
var left=box.offsetWidth |
| |
clientWidth和clientHeight ---返回元素宽高,不包含滚动条和边框 包含padding |
| |
scrollHeight和scrollwidth ---没有滚动条时 和clientWidth相等 |
| |
出现滚动条后---包含隐藏部分的宽度 |
| |
//------------------------------------------------ |
| |
offsetLeft和offsetTop---距离父元素的左和上的距离 |
| |
clientLeft和clientTop--返回元素边框的宽度 |
| |
scrollLeft和scrollTop --返回元素的滚动条距离 |
| |
|
| |
window.onscroll=function(e){ |
| |
var top=document.body.scrollTop||document.documentElement.scrollTop;获取滚动条Y轴的滚动距离 |
| |
console.log(window.pageYOffset+' '+window.pageXOffset) 获取滚动条XY轴的滚动距离 |
| |
} |
| |
|
| |
|
| |
|
| |
|
| |
<!-- BOM --> |
| |
innerWidth--innerHeight----窗口的宽高 不包括地址栏 |
| |
outerWidth--outerHeight---窗口的宽高--包括地址栏 |
| |
window.length返回窗口中的框架数 |
| |
|
| |
<!-- Bom全局方法--> |
| |
alert('警告框') |
| |
confirm('确认框') |
| |
var x=prompt('输入名字','李(默认值)') |
| |
|
| |
window.open( URL(网页地址),name(网页,名字),specs(能设置新网页的宽高属性),replace)打开新的网页 |
| |
window.close() 关闭窗口 |
| |
ie支持 |
| |
window.resizeBy() 按照指定的像素调整窗口的大小 |
| |
window.resizeTo() 把窗口的大小调整到指定的宽高 |
| |
** window.scrollBy() 按照指定的像素值来滚动内容 |
| |
** window.scrollTo() 把内容滚动到指定的坐标 |
| |
|
| |
|
| |
screen对象---对象包含有关客户端显示屏幕的信息 |
| |
document.write(window.screen.width+'--'+window.screen.height) |
| |
screen.availHeight 返回显示屏幕的高度 (除window 任务栏之外) |
| |
screen.colorDepth 返回目标设备或缓冲器上的调色板的比特深度 |
| |
pixelDepth 返回显示屏幕的颜色分辨率(比特每像素) |
| |
|
| |
<!-- navigator---返回浏览器信息--> |
| |
navigator.appCodeName---浏览器代码名 mozilla |
| |
navigator.appName--Netscape--浏览器名称 |
| |
navigator.version--浏览器的版本 |
| |
navigator.language--浏览器语言 |
| |
navigator.platform--浏览器操作系统 |
| |
|
| |
navigator.userAgent--返回用户请求头信息 |
| |
navigator.userAgent--返回用户请求头信息 |
| |
if(navigator.useragent.indexOf('Chrome')!=-1){ |
| |
alert('谷歌浏览器') |
| |
} |
| |
|
| |
http://www.baidu.com---域名 |
| |
http://--协议 |
| |
域名--域名解析---DNS服务器---ip地址() |
| |
端口号(0-65536) |
| |
|
| |
<!-- location 的属性--> 对象包含有关短期URL的信息 |
| |
location.href 设置或返回完整的URL地址 |
| |
location.host----返回ip和端口 |
| |
hostname---返回ip |
| |
hort---端口号 |
| |
pathname路劲部分 |
| |
protocol协议 |
| |
用href去跳转并添加?号后面是search和#号后面试hash值 |
| |
<!-- * location.href='' --> |
| |
search设置或者返回从?开始的URL(查询部分) |
| |
hash设置或者返回从#号开始的URL(锚) |
| |
|
| |
<!-- 地址栏传汉字 --> |
| |
编码 encodeURI() |
| |
location.href="a.html?name="+encodeURI("张三"); |
| |
decodeURI("张三")解码 |
| |
|
| |
<!-- location得方法 --> |
| |
location.assign('http/...') 加载页面 产生历史记录能返回 |
| |
location.replace('http/..') 加载页面 不能返回 |
| |
location.reload() 不传参 用来刷新页面重新加载 |
| |
|
| |
|
| |
<!-- history 对象 的方法 --> |
| |
history.forward() 前进一步类似在浏览器中点击前进按钮 |
| |
history.back() 退一步,类似在浏览器的工具栏返回按钮 |
| |
hisstory.go(-2) 可以参传正负 前进几步后退几步 |
| |
|
| |
|
| |
<!-- cookie---->-浏览器的储存 html5(localStorage) |
| |
|
| |
cookie--大小 4kb左右大小 |
| |
1byte = 8bit |
| |
1024b = 1kb |
| |
|
| |
一个ip地址只能有一套cookie |
| |
设置cookie 第一个参数 name=value |
| |
document.cookie='name=zhangsan' |
| |
设置cookie过期时间 expires=时间 |
| |
var mydate=new Date(); |
| |
mydate.setMinutes(26) |
| |
document.cookie='age=88;expires='+mydate.toGMTString(); |
| |
获取cookie |
| |
var cookies=document.cookie; |
| |
|
| |
<!-- 克隆 --> |
| |
cloneNode(true)克隆元素的内容 |
| |
var myli=lis[1].cloneNode(true) |
| |
|
| |
<!-- json形式对象 --> |
| |
var obj={ |
| |
name:'张三'; |
| |
age:4; |
| |
set:function(){ |
| |
} |
| |
} |
| |
JSON,全称是javaScript Object Notation。 |
| |
它基于是javaScript编程语言的一种轻量级的数据交换格式, |
| |
主要用于跟服务器进行交换数据,跟xml相类似,它独立语言,在跨平台数据传输上有很大的优势 |
| |
jion 的key值要加“”; |
| |
方括号保存数组[] |
| |
|
| |
JSON转字符串 JSON.stringify |
| |
var carstr=JSON.stringify(obj); |
| |
|
| |
字符串转JSON |
| |
JSON.parse(carstr); |
| |
|
| |
eval --方法能解析代码字符串的能力非常强大,但也非常危险 |
| |
因此在使用eval是需极为谨慎,特别是在用他执行用户输入的情况下; |
| |
否则可能会有恶意用用户输入威胁你的站点或应程序安全的代码(即所谓的代码驻入) |
| |
var x=eval(str) |
| |
|
| |
|
| |
prototype--- 继承和共享 |
| |
prototype--函数才有的数据 |
| |
__proto__ 原型链是每个对象都有的属性 |
| |
原型指向上一层对象的原型 最终指向unll |
| |
|
| |
requestAnimationFrame(fn)requestAnimationFrame的用法与settimeout很相似,只是不需要设置时间间隔而已。requestAnimationFrame使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。它返回一个整数,表示定时器的编号,这个值可以传递给cancelAnimationFrame用于取消这个函数的执行 |
| |
requestID = requestAnimationFrame(callback); |
| |
cancelAnimationFrame方法用于取消定时器 cancelAnimationFrame(1或者timer); |
| |
|
| |
|