数据类型转换
var num=10;
console.log(typeof num.toString());
var str=“10.5”; //强制转化
console.log(parseInt(str));
console.log(parseFloat(str));
var s=“10abc”;
console.log(parseInt(s));
var m=“abc10”;
console.log(parseInt(m));//NaN
字符串的方法
var s1=“abcdefa”;
//将字符串转化为数组
//以什么符号分割
var a=s1.split("");
console.log(a);
//将数组转化为字符串
console.log(a.toString());
console.log(a.join(""));
//查找字符
console.log(s1.indexOf('a',0));//返回值是找到字符返回对应的索引位
console.log(s1.indexOf('a',1));//查找字符 找不到返回-1
console.log(s1.indexOf('f'));//检测是否有字符 有返回索引没有返回-1
console.log(s1.lastIndexOf('a', 1));
查找字符
onsole.log(s1.search(‘d’));//查找字符返回当前索引位
//字符串截断
//起始索引 长度
console.log(s1.substr(1, 2));
console.log(s1);
//起始索引 终止索引
console.log(s1.substring(1, 4));//截取的字符串
console.log(s1);
console.log(s1.slice(1,4));
console.log(s1);
//字符的替换
console.log(s1.replace('a', "m"));
console.log(s1);
//字符串的拼接
var k="jkliu";
var h="dsadsa";
console.log(s1.concat(k,h));
console.log(s1.concat(k).concat(h));
//根据索引取字符
console.log(s1.charAt(0));
//返回字符串的长度
console.log(s1.length);
//如何遍历字符串
for(var i=0;i<s1.length;i++)
{
console.log(s1.charAt(i));
}
//遍历 for in
for(var index in s1)
{
console.log(s1.charAt(index));
}
数组
数组关键字arry
//new 数组的时候 写一个值 代表的是数组的长度
//多个值 里面值
/*var arr=new Array();
arr[0]=“a”;
arr[1]=10;
arr[2]=true;
arr[3]=function (){
}
console.log(arr);
//数组取值
console.log(arr[0]);
//数组简写方式
var array=[];
console.log(array);
array[0]=1;
console.log(array[0]);*/
//数组里面的属性 length
// console.log(array.length);
//数组里面方法
var a=[1,2,3];
var b=[4,5,6];
var c=[7,8,9];
//1.concat 拼接数组
var m=a.concat(b,c);
console.log(m);
//2.every 检测数组里面所有元素是否符合条件 true false
var boo=m.every(function (val, index) {
return val>0;
});
console.log(boo);
//3.fill 固定值替换 不写后两个参数 全替换 原数组受影响
var k=m.fill("room",0,1);
console.log(k);
//filter 过滤方法 过滤出满足条件的元素
var fil=m.filter(function (val,index,arr){
if(val>8)
{
return val;
}
});
console.log(fil);
//find 找数组满足条件的返回第一个值
var mm=m.find(function (val,index,arr){
return val>6;
});
console.log(mm);
//forEach 数组遍历方法 相当代替for遍历数组 无返回值
m.forEach(function (val,index,arr){
});
//map 映射 产生新数组 不写返回值 类似遍历数组
var k1=[1,2,3,4];
var newarr=k1.map(function (val,index,arr){
return val*2;
});
console.log(newarr);
//reduce 累计器
var all=k1.reduce(function (val1,val2){
console.log(val1,val2);
return val1*val2;
});
console.log(all);
//reserve 倒序
console.log(k1.reverse());
//some 判断
var isboo=k1.some(function (val,index,arr){
if(val%5==0)
{
return val;
}
});
console.log(isboo);
//排序
var o=[9,1,4,2,5,3,7,6,8];
console.log(o.sort());//默认小-大
o.sort(function (n1,n2){
return n2-n1;
});
console.log(o);
var h=[1,2,3];
//剩下方法 一对
//push 后追加 unshift 前追加
h.push(4);
h.unshift(0);
//两个删除 pop 后删除 shift 前删除
h.pop();
h.shift();
//数组截断 slice splice
//console.log(h.slice(0, 2));//返回值为截取的值
console.log(h.splice(0, 2));//返回也是截取的值 原数组受影响
console.log(h);
获取页面宽高
console.log("可视区域高:"+document.documentElement.clientHeight);
console.log("可视区域宽:"+document.documentElement.clientWidth);
console.log("body的真实高:"+document.body.clientHeight);
console.log("body的真实宽:"+document.body.clientWidth);
//获取屏幕宽和高不包涵任务栏
console.log(window.screen.availHeight);
console.log(window.screen.availWidth);
//获取屏幕的实际宽和高 包涵任务栏
console.log(window.screen.height);
console.log(window.screen.width);
//浏览器上边距和做边距
console.log(window.screenTop);
console.log(window.screenLeft);
//滚动条滑动距
console.log(window.scrollX);
console.log(window.scrollY);
console.log(document.documentElement.scrollTop);
console.log(document.documentElement.scrollLeft);
js 的事件
js 操作集合得获取单个对象
js不能隐式迭代 不能操作一堆 只能进行单个操作
collection[index]----索引 key:value 0:ele 1:ele
事件的委托
父委托事件给子执行
<body>
按钮1
- 子元素
p元素
事件里面的this
其余事件绑定方式里面的this