(function(){
alert(1);
})()
函数自执行 闭包;
window.onload=function(){
var oDiv=document.getElementById(‘div1‘);
var aDiv=oDiv.getElementsByTagName(‘div‘);
var aInput=oDiv.getElementsByTagName(‘input‘);
for(var i=0;i<aInput.length;i++){
(function(index){
aInput[i].onclick=function(){
for(var i=0;i<aInput.length;i++){
aDiv[i].style.display=‘none‘;
aInput[i].className=‘‘;
}
this.className=‘active‘;
aDiv[index].style.display=‘block‘
}
})(i)
}
}
选项卡 封闭空间案例 函数自执行 舍弃 索引值 最完美方案
好处: 省了一个函数名
作用:1避免变量冲突
2解决问题,索引值
i的问题:
1事件里面的i 不能重用
2 定时器里面的i;
封闭空间核心 函数每执行一次都是复制一份包括里面的参数
---------------------------------------------------------------------------------------------
非行间样式
非行间样式只读不能修改
-----------------------------------
关于设置样式
cssText : 以文本的形式设置样式。
既能读取 行间样式,也能设置
with() 没用 ; 乱
设置样式:
1 class
2 obj.style[name]=value;
-------------------------------------------------------------------------------------------
字符串
str.charAt() 没找到 就是一个空 参数(索引值)
length;
indexof();
str.indexof(); 找东西 返回值是索引下标; 没找到返回值是-1;
lastIndexof(); 从后往前找 索引 找的方向不一样 返回的索引还是一样的 没找到也是-1
substring () 截取字符串 (开始位置 , 结束位置 ) 不包括最后一位
如果不写后面一个参数 就是从第一个位置到最后 全部截取;
split(); 切分 切分字符串 (切得规则) 返回一个数组
大小写 :
toUpperCase(); 大写
toLowerCase(); 小写 str.toLowerCase(); 格式
字符串比较:
字典比较
1英文比较 字典序
2数字比较 最小0 最大9 (只比较第一位)
3中文比较 中文没有可比性 比较的是计算机内测编码
-----------------------------------------------------
判断浏览器类型
userAgent ----用户代本理
window.navigator.userAgent //检测浏览器版
------------------------------------------------------------------------
数组:
var arr=[] ; 推荐 性能高
var arr=new Array(8) \\全写 如果只有一个参数代表 数组长度是8
arr.length;
arr.push(); 数据保存在数组的最后一位
arr.pop(); 删除数组的最后一位数据 会返回删除的数据
arr.unshift(); 数据保存数组的第一位
arr.shift();删除数组的第一位数据 会返回删除的数据
万能的方法 :添加 删除 修改
arr.splice(); 非常重要 (起始位置,删除的个数,元素1,元素2,元素3,...)
删除:
arr.splice(beginIndex,N)
添加:
arr.splice(beginIndex,0,元素1.......)
修改:
arr.splice(beginIndex,N,元素1.......)
注意:splice 先删除 后添加;
reverse() 数组翻转 1,2,3,4,5 变成 5,4,3,2,1
数组链接:
var ar3=arr1.concat(arr2); 返回的是一个新数组 相连 可以传多个参数 可以传一个字符串会做隐士类型转换;
join(); (链接的一个规则) 返回一个字符串
字符串转数组 split;
数组转字符串 join;
length 数组的length可以修改 也可以获取
删除组数
1 length=0;
2 pop()/shift(); 用whil 循环
3 splic(0,arr.length)
arr.sort(); (比较函数)
function(n1,n2){
return n1-n2;
}
-----------------------------------------------------------------------------------------------
argunments :数组 存参数的 (实参) 只有函数才有
function show(a,b){ // 形式参数 与arguments 的值 没关系
alert(arguments.length)
}
arguments.callee(); // 递归
----------------------------------------------------------------------------------------------
json : 只能用 for in 不能用for循环
arr 和json 区别:
arr | json
|
1 length | 没有length
2 下标属性是数字索引 | 下标 是字符串
3 有2个循环for for in | 只有 for in
4 数组是有序的 | 无序