web前端

web前端学习第三阶段:
一、数组
1、如何声明数组:new实例化对象 ,产生一个对象。
new Array()
2、数组的赋值
(1)赋值一个参数,代表的是数组的长度。

var arr = new Array(2)
 console.log(arr);

(2)赋值多个值,代表直接赋值,并且长度自动。

var arr1 = new Array(2, 3, 4);
console.log(arr1);

(3)数组赋值类型不仅可以是number类型,还可以是string,boolean,function,object等类型。

var a = new Array();
        a[0] = 1;
        a[1] = 2;
        a[2] = "a";
        a[3] = function () {
        }
        a[4] = null;
console.log(a);

3、数组的取值

var a = new Array();
     a[0] = 1;
     a[1] = 2;
     a[2] = "a";
     a[3] = function () {
console.log("wo shi  han shu ");
     return 1;
     }
     a[4] = null;
console.log(a[3]);
/*若想要执行a[3]里面的函数,则console.log(a[3]());若函数没有返回值,则输出结果为undefined,若函数有返回值,则输出结果为返回值的值。*/

4、数组的属性:length(长度)

var arr=new Array();
console.log(arr.length);     //输出结果:0

5、数组里面的方法
(1)join方法(数组的拼接)
是将数组转化为string,里面的参数是按照什么符号拼接,默认为逗号拼接方式,若为空字符则以空字符方式拼接。

var k = [1, 2, 3, 4, 5];
console.log(k.join("|"));    //输出结果:1|2|3|4|5

(2)reverse方法(数组的翻转)

var k = [1, 2, 3, 4, 5];
console.log(k.reverse()); //输出结果:(5)[5,4,3,2,1]

(3)slice方法(数组的截取)
里面的参数代表开始索引和截取数组的长度,截取取小不取大,并且截取完成之后对原数组没有影响。

var k = [1, 2, 3, 4, 5];
console.log(k.slice(0, 2)); //输出结果:(2)[1,2]

(4)splice方法(另一种数组的截取)
里面的参数代表开始索引和截取数组的长度,并且截取完成之后对原数组有影响。

var k = [1, 2, 3, 4, 5];
console.log(k.splice(0, 3));  //输出结果:(3)[1,2,3]
console.log(k);               //输出结果:(2)[4,5]

(5)数组的追加
push:数组内容之后追加,返回的值是数组的长度。

var k = [1, 2, 3, 4, 5];
console.log(k.push(0));    //输出结果:6
console.log(k);            //输出结果:(6)[1,2,3,4,5,0]

unshift:数组内容之前追加,返回值是数组的长度。

var k = [1, 2, 3, 4, 5];
console.log(k.unshift(-1));    //输出结果:6
console.log(k);                //输出结果:(6)[-1,1,2,3,4,5]

(6)数组的删除
shift:删除前面的,返回值是删除的值

var k = [1, 2, 3, 4, 5];        
console.log(k.shift());        //输出结果:1     
        console.log(k);         //输出结果:(4)[2,3,4,5]

pop:删除是最后边的,返回值是删除的值
6、数组的例题
(1)、冒泡排序法

(1)、冒泡排序法
var a = [10, 2, 1, 4, 3, 5, 7, 6, 9, 8];
for (var i = 0; i < a.length; i++) {
        var temp = null;
        for (var k = 0; k < a.length - 1; k++) {
            if (a[k] > a[k + 1]) {
                temp = a[k + 1];
                a[k + 1] = a[k];
                a[k] = temp;
            }
        }
    }
console.log(a);  //输出结果:(10)[1,2,3,4,5.6,7,8,9,10]

var a2 = [10, 2, 1, 4, 3, 5, 7, 6, 9, 8];
    var a1 = a2.sort(function (n1, n2) {
        return n1- n2;
    });
    console.log(a1);    //输出结果:(10)[1,2,3,4,5.6,7,8,9,10]

二、js对象
window:document对象,location对象,history对象,内置对象。
document对象:是网页中所有的html标签,主要是为了操作元素的样式变化和数据显示等,要想操作dom元素,首先要获取dom元素,才能对其进行操作。
1、js里面获取dom元素的方式
(1)通过类名称获取(getElementsByClassName):返回的是htmlcollection集合,用法和数组一致。

<body>
<button id="btn" class="btnlist" name="btninfo">按钮</button>
<script>
var btn=document.getElementsByClassName("btnlist");
    console.log(btn[0]);
</script>
</body>

(2)通过元素的名字来获取(getElementsByName):返回的是nodelist节点类型,用法和数组一致。

<body>
<button id="btn" class="btnlist" name="btninfo">按钮</button>
<script>
var btn1=document.getElementsByName("btninfo");
    console.log(btn1[0]);
</script>

(3)通过元素的id名称来获取(getElementById):返回的是单个对象 ,直接使用。

<body>
<button id="btn" class="btnlist" name="btninfo">按钮</button>
<script>
var btn2=document.getElementById("btn");
console.log(btn2);
</script>

(4)通过元素的标记名称(也就是标签名称)来获取(getElementsByTagName):返回的是htmlcollection 集合,用法和数组一致。

<body>
<button id="btn" class="btnlist" name="btninfo">按钮</button>
<script>
var btn3=document.getElementsByTagName("button");
console.log(btn3[0]);
</script>

(5)querySelector:返回的是单个元素。

var btn4=document.querySelector(".btnlist");
console.log(btn4);

(6)querySelectorAll:返回的是集合。

var btn5=document.querySelectorAll("#btn");
    console.log(btn5);

(7)直接获取body

console.log(document.body);

2、怎样操作don元素:每一个对象都具有属性和行为(事件),而操作dom元素就是操作它的属性和行为,js不能操作一组对象,只能分开操作。
(1)修改属性

<body>
<button id="btn">按钮</button>
<script>
var btn=document.getElementsByTagName("button");
btn[0].style.background="red";
btn[0].style.width="200px";
</script>
</body>

2)获取对象的属性

console.log(btn[0].style.width);

(3)js获取非行内样式

console.log(window.getComputedStyle(btn[0]).height);

3、dom元素的事件:键盘事件、表单事件、鼠标事件、浏览器事件、触屏事件等(js的事件前缀都带on)
(1)键盘事件:onkeydown(键盘按下)、onkeyup(键盘抬 起)、onkeypress(按键事件)。
(2)表单事件:onfocus(获得焦点)、onblur(失去焦点)。
(3)鼠标事件:onclick(单击)、ondbclick、onmouseleave(水平离开)、onmouseout(离开)、onmousemove(鼠标移动)、onmouseenter(鼠标进入)、onmouseover(鼠标悬停)、onmousewheel(鼠标滚轮事件)。
(4)浏览器事件:window事件、onload(加载完成事件)、onresize(窗口变化事件)、onerror(报错事件)、onscroll(滑动事件)。
(5)触屏事件:touch(触屏)、touchstart(开始触屏 )、touchmove(触屏移动)、touchend(触屏结束)。
4、如何给dom元素添加事件
(1)常规添加:直接在标签上添加事件

<body>
<button onclick="btndou(1)">按钮</button>
<script>
function btndou(a) {
        console.log(a);
    }
</script>
</body>

(2)动态给dom元素添加事件

<body>
<button id="btn">按钮</button>
<script>
var btn = document.getElementById("btn");
    btn.onclick = function () {
        console.log(1);
    }
</script>
</body>
var btn = document.getElementById("btn");
btn.onclick = showinfo;   //不能添加小括号
    function showinfo() {
        console.log(1);
    }

(3)事件的监听

<body>
<button id="btn2">按钮2</button>
<script>
var btn2 = document.getElementById("btn2");
btn2.addEventListener("click",function (){
     console.log(2);
     });
</script>
</body>
var btn2 = document.getElementById("btn2");
btn2.addEventListener("click", showbtn);
    function showbtn() {
        console.log(2);
    }

这只是Js学习中数组和window对象中的一部分,当然这些也都是基础,只有打好基础,我们才能进行后续大量的练习,来将我们的语法和思维逻辑串联起来,进行巩固和应用,真正提升自己的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值