通过childNodes类型的方式查找的节点是NodeList类型;childNodes children 查找到的都是直接子节点
通过getElementsByTagName类型的方式查找的是HTMLCollection类型; 二者都是动态集合
给未声明的变量赋值不会出错,但取值会出错,
给未声明的变量的下级赋值会出错,
访问数组的未赋值的下标不会出错,访问数组的未赋值的元素的下级会出错
访问对象的未赋值的属性不会出错,访问对象的未赋值的元素的下级会出错
//访问未声明的变量会出错,给未声明的变量赋值不会出错;
/访问对象和数组没有的属性或元素不会出错,但访问没有的属性或元素的属性或元素会出错;
fromCharCode(unicode)把unicode码转换为字符
正则 (?![a-z0-9]+$) 从头部开始(可以不包括头部)的任何地方一直到结尾不能全是a-z0-9 其他的可以在中间 也可以在结尾,
若前面加^ 则必须从头部开始匹配
var g = reg.exec(str) 返回一个数组
字符串中支持正则的API
var i = str.serch(/正则/);
var arr = str.match(/正则/g) ;
var arr = str.split(/正/);
var newStr = str.replice(/正则/g,"$n")$n表示对正则分组的引用
RegExp.$n是用reg.exec()返回的数组的分组引用
四舍五入
function round(num,d){
num *= Math.pow(10,d);
num = Math.round(num);
return num/Math.pow(10,d);
}
Date对象 的format
function foo(){}的__proto__指向Function.prototype
foo.prototype的__proto__指向原型链的上一级
检查数组的方法
instanceof
isPrototypeOf
通过getElementsByTagName类型的方式查找的是HTMLCollection类型; 二者都是动态集合
给未声明的变量赋值不会出错,但取值会出错,
给未声明的变量的下级赋值会出错,
访问数组的未赋值的下标不会出错,访问数组的未赋值的元素的下级会出错
访问对象的未赋值的属性不会出错,访问对象的未赋值的元素的下级会出错
//访问未声明的变量会出错,给未声明的变量赋值不会出错;
/访问对象和数组没有的属性或元素不会出错,但访问没有的属性或元素的属性或元素会出错;
fromCharCode(unicode)把unicode码转换为字符
正则 (?![a-z0-9]+$) 从头部开始(可以不包括头部)的任何地方一直到结尾不能全是a-z0-9 其他的可以在中间 也可以在结尾,
若前面加^ 则必须从头部开始匹配
var g = reg.exec(str) 返回一个数组
字符串中支持正则的API
var i = str.serch(/正则/);
var arr = str.match(/正则/g) ;
var arr = str.split(/正/);
var newStr = str.replice(/正则/g,"$n")$n表示对正则分组的引用
RegExp.$n是用reg.exec()返回的数组的分组引用
四舍五入
function round(num,d){
num *= Math.pow(10,d);
num = Math.round(num);
return num/Math.pow(10,d);
}
Date对象 的format
function foo(){}的__proto__指向Function.prototype
foo.prototype的__proto__指向原型链的上一级
检查数组的方法
instanceof
isPrototypeOf
Object.prototype.toString.call();
constructor;
Array.isArray
duck type