2016.11.26 JS

2016-11-27  本文已影响0人  看流沙聚散
array.push:给数组最后增加元素

数据类型

1.对象([ ],{ },null)object
2.数字number
3.字符串string
4.函数function
5.未定义undefined
6.布尔booleam

字符串转换成数字

Number()
Number是整体转化
Number(function(){});//转化为NaN,非数字
Number(['']);//0
Number([1,2,3]);//NaN
Number({});//NaN
Number(null);//0
对象和有多个数据的数组都会转化为NaN
parseInt:解析成整数,只能转字符串,其他的都不能转;从左到右一位一位的看,如果遇到非数字就停止,也认一些数字:如 空格,+,-,10px

parseFloat(浮点数):可以转化小数,认小数

隐式类型转换

在做加法时,如果有字符串,会将我的操作数都变成字符串,然后再相加 如:'1'+1;//11
"-":会转换成数字 如 '10'-1;//9
- ,/ ,% ,*:都会转换成数字
字符串比较:'9'<'10';//false 是一位一位的比较 先比较9<1

NaN

NaN:not a number 不是个 数字 的 数字类型
NaN 可以看成是false
NaN自己和自己都不相等 NaN==NaN是false
isNaN(NaN)是true

封装函数

1.先将代码全部放在函数中,调用确保可运行
2.修改我的顶点元素,防止外部的影响
3.将变化的信息变成自变量,形成可以定制化的效果
4.html结果尽量保持一致
例子:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
*{
    margin: 0;
    padding: 0;
}

.box{
    width: 350px;
    float: left;
    margin: 50px;
    position: relative;
}

img{
    width: 100%;
}


ul{
    list-style: none;
    position: absolute;
    top: -10px;
    right: -60px;
}

li{
    height: 50px;
    width: 50px;
    background: #ccc;
    margin-top: 10px;
}

li.active{
    background: yellow;
}



</style>
</head>
<body>
    <div class="box" id="box1">
        <img src="img/1.png" alt="" class="img1">
        <ul>
        </ul>
    </div>

    <div class="box" id="box2">
        <img src="img/1.png" alt="" class="img1">
        <ul>
        </ul>
    </div>


    <div class="box" id="box3">
        <img src="img/1.png" alt="" class="img1">
        <ul>
        </ul>
    </div>
<script>

function changeImgs(oBox  ,imgs){
    // var arr = ['img/1.png','img/2.png','img/3.png','img/4.png', 'img/4.png', 'img/4.png'];
    var arr = imgs;
    var oImg = oBox.getElementsByClassName('img1')[0];
    var aLi = oBox.getElementsByTagName('li');
    var oUl = oBox.getElementsByTagName('ul')[0];

    //当前的选择索引
    var cur = 0;//第一张图片



    //根据图片的个数动态的生成li
    var str = '';
    for(var i=0;i<arr.length;i++){
        if(i==cur){
            str = str + '<li class="active"></li>';
        }
        else{
            str = str + '<li></li>';
        }
        
    }

    oImg.src = arr[cur];

    oUl.innerHTML = str;



    function onSelect(){
        //切换图片
        oImg.src = arr[this.index];

        //改变按钮样式
        // this.className = 'active';

        //两种方式:
        //第一种: 先清除所有li的class, 然后在点击的li加上.active

        // for(var i=0;i<aLi.length;i++){
        //  aLi[i].className = '';
        // }

        // this.className = 'active';

        //第二种方法: 先清除之前选择的li, 然后在点击的li加上.active



        aLi[cur].className = '';
        this.className = 'active';

        cur = this.index;





    }

    for(var i=0;i<aLi.length;i++){
        //添加点击函数
        aLi[i].index = i;
        aLi[i].onclick = onSelect;
    }

}
var oBox = document.getElementById("box1");
var oBox2 = document.getElementById("box2");
var oBox3 = document.getElementById("box3");


changeImgs(oBox, ['img/1.png','img/2.png', 'img/3.png']);
changeImgs(oBox2, ['img/3.png','img/4.png']);
changeImgs(oBox3, ['img/3.png','img/4.png', 'img/1.png']);


//封装成函数
1. html结果尽量保持一致
1. 先将代码全部放在函数中, 测试,确保可运行
2. 修改我的顶点元素,防止对外部的影响
3. 将变化的信息变成自变量,形成可以定制化的效果


</script>
</body>
</html>
上一篇下一篇

猜你喜欢

热点阅读