js知识点

attachEvent  //支持ie   this指针指向了window对象   一般不推荐使用,可以用原始的方法来代替
addEventListener   W3C标准

evt = evt || window.event;//event.type 事件名

table DOM

inserRow,inserCell,deleteCell,deleteRow,deleteCaption,rowIndex,cellIndex

select DOM
sel.remove(index);//移除options下的下标元素
var opt = new Option("新增选项文本","选项值");
select.options[select.selectedIndex].text  //文本内容

form DOM
单选框和复选框都有checked属性
document.forms;
fm.elements  表单下的元素

全局变量全是window对象的属性

o instanceof c;
在上面的语句执行过程中,虚拟机会把c.prototype和o的prototype链上的节点逐个进行比较,如果找到相等的节点,则返回true,否则返回false。

null可以理解为原始类型

alert((Object instanceof Function));//true
alert(Function instanceof Object);//true

var op = document.getElementById("op");
var nop = op.cloneNode(true);//true  表示连同子节点一起克隆
document.body.appendChild(nop);

var div = document.createElement("div");
var textNode = document.createTextNode("sdfsdfjsl");
node.removeChild(node.childNodes[n]);//移除节点 但不清内存
node.replaceChild(新节点,要被替换的节点-一定要是node的子节点);
node.inserBefore(新节点,旧节点-必须要是node的子节点);

nodeType  3为文本节点  
nodeType,nodeValue,firstChild,lastChild,nextSibling,previousSibling,childNotes,nodeName

//声明不同的函数最终解决方案
var fn = (function (){
  var f;
  if(true){
    f = function F(){};
  }else if(false){
    f = function F(){};
  }else{
    f = function F(){};
  }
  var F = null;
  return f;
})()

eval对JSON求值   JSON字符串通常是被包含在一对圆括号中的-----  eval("("+json+")");
()  分组操作符,也就是那对圆括号,会导致解析器强制将JSON的花括号当成表达式而不代码块来解析
()分组操作符  只能包含表达式
(var x = 5);//错误

ECMAScript  常用函数
str.charCodeAt();//小写s的Unicode编码
var a = String.fromCharCode(65,66,67,68);//
alert(a);//返回ABCD
isFinite(a);//isFinite() 函数用于检查其参数是否是无穷大。

var d = new Date();
d.getFullYear
d.getMonth   月份是从0开始计数的,所以1月时将返回0
d.getDate
d.getHours
d.getMinutes
d.getSeconds

document.documentElement    //html元素

frame
mainFrame = document.getElementById("mainFrame");//iframe
mainFrame.contentWindow.document.body.innerHTML;

location.href=url;
location.replace(url);//不会留下历史记录

history.back();
history.forward();

window.defaultStatus
window.status

setTimeout(function(){
},1000)
setInterval(function (){
},2000)

//只有JavaScript打开的窗口才能被Js关闭
window.close();
var w = window(url,name);
w.close();

window.moveBy
window.moveTo
window.resizeTo
window.blur
scrollTo
scrollBy

Mozilla
/*
alert(screenX);
alert(screenY);
alert(window.innerWidth + "\n" +window.innerHeight);
*/
ie
/*
alert(screenLeft);
alert(screenTop);
*/

String search indexOf 方法
search 可用正则  indexOf 不能用

//var re = /^\w{1,15}(?:@(?!-))(?:(?:[a-z0-9-]*)(?:[a-z0-9](?!-))(?:\.(?!-)))+[a-z]{2,4}$/;
正则  邮箱地址

贪婪  能匹配多少匹配多少
惰性  能匹配少些就少一些

反向引用  用\1\2。。。。。。

正向前瞻 ?=
负向前瞻 ?!
?:  不捕获

正则  在范围类里面,只有[,],-,.  是特殊字符

var re = /(A?(B?(C?)))/;
var s = "ABC";
alert(re.exec(s));
嵌套分组,从外往内

var osVersion = "-------Ubuntu 8-----------";
var re=/([a-z]+)\s+(\d+)/i;//ignoreCase
var a = re.exec(osVersion);
alert(RegExp.$2);

var reg = RegExp("(^|&)" + name + "=([^&]*)");
if (reg.exec(request) == null){  //exec 返回null
  return "";
}
return RegExp.$2;

String.slice
String.localeCompare

var d = +new Data;//创建一个Date对象,然后转换为数字

执行一个全局函数,函数内部的this指向window

对象下的valueOf 与toString方法相同

JavaScript中isPrototypeOf函数方法是返回一个布尔值,指出对象是否存在于另一个对象的原型链中。使用方法:
object1.isPrototypeOf(object2)
其中object1为必选项。一个对象的实例。
object2为必选项。另一个对象,将要检查其原型链。
如果 object2 的 原型链中包含object1,那么JavaScript中isPrototypeOf函数方法返回 true。
function DemoA(){
 this.name = "CJ";
}
function DemoB(){
}
DemoB.prototype = new DemoA;//让DemoB继承DemoA

//在函数执行时有个arguments对象,保存所有参数
//arguments对象,类似数组,可以用下标访问,并且有length属性
arguments.callee  函数自身

(function (){alert('fn2')})();
() 括号的作用,将括号中的表达式求值返回给上下文

document.all  可以用来判断是否为ie浏览器

encodeURI()
encodeURIComponent()  转义   : /

IE支持innerHTML与innerText
FireFox支持innerHTML与textContent
if($("openid").innerText != null){
  $("openid").innerText = openid;
}
else
{
  $("openid").textContent = openid;
}

window.location.hostname.toLowerCase();//主机
window.location.search  取url中?之后的字符串

location.reload(true); //重新获取服务器的数据
location.reload(false);//从缓存中取数据

var oDiv = document.getElementById("oDiv");
oDiv.className;

return {//这里不能换行了

}

oDiv.scrollLeft oDiv.scrollTop //这两个属性报告了有滚动条元素中未显示的左一部分的宽(scrollLeft)和上一部分的高(scrollTop).
相对于父元素的坐标  oDiv.offsetLeft oDiv.offsetTop //返回元素在页面中相对于父元素的坐标 offsetLeft与offsetTop属性将返回其自身的margin+父元素的padding

窗口视口的宽度和高度
w = document.documentElement.clientWidth;
h = document.documentElement.clientHeight;

oDiv.scrollWidth oDiv.scrollHeight //元素滚动区域的宽度和高度
oDiv.offsetWidth oDiv.offsetHeight //属性用来取得对象在页面中的实际所占区域大小
oDiv.clientWidth oDiv.clientHeight //属性给出元素的可视部分的宽度和高度

evt.clientX evt.clientY //返回事件发生时鼠标在视口中的坐标;
evt.offsetX evt.offsetY //返回事件发生时鼠标相对目标对象的坐标 ie
evt.layerX evt.layerY //同offset   w3c
evt.pageX  evt.pageY  //pageX与pageY返回事件发生时鼠标相对于页面的坐标 w3c

split函数可以用正则  如obj.className.split(/s+/);
replace也可以用正则

元素的style属性是个对象
修改元素的style属性时,必须将一个字符串赋给style对象的属性!

getComputedStyle 获取真正的样式表 w3c
currentStyle     获取真正的样式表 ie

var link = document.createElement("link");
link.type = "text/css";
link.rel = "styleSheet";
link.href="text.css";
var head = document.getElementsByTagName("head")[0];
head.appendChild(link);
alert(document.styleSheets.length);

document.styleSheets //对象的styleSheets属性是一个包含了所有的样式表的伪数组
document.styleSheets[0].rules  //样式表的规则 ie
document.styleSheets[0].cssRules //对应样式表里所有规则的集合 w3c

rule对象属性
selectText //选择符
style //与元素上的style属性相似,可读取和设置css规则

try语句块不能捕获语法错误 只能捕获代码运行时的错误
try{
}catch(e){
}finally{
 //不管有没有错误发生,都始终执行
}

onerror //当发生错误时执行的事件

window.onerror = function (){
  alert("Error");
  return true;//取消系统错误记录
}

添加多条cookie
document.cookie="cookieName=cookieValue;";
document.cookie="a2=b2;
不能这样写 document.cookie="cookie1=cookie1;cookie2=cookie2;";

保存cookie的value值一般要进行编码
encodeURI encodeURIComponent

var iNum = 18;
alert(iNum.toString(2));//把18转换为二进制

javascript中的数字 即表示数字的 32 个数位

parseInt("10",8);//把"10"字符串看做成8进制数 输出应该是8

var a = 3;
alert(a.toString(2)) //要这样写

3.toString(2);//错误的写法

var a = "123.123e5eehh";
alert(parseInt(a)) //123

@(50/0);//可以抑制表达式错误


因为PHP只有32位有符号整数,没有64位长整型,也没有无符号整数

你可能感兴趣的:(js知识点)