• JavaScript学习笔记3之 数组 & arguments(参数对象)& 数字和字符串转换 & innerText/innerHTML & 鼠标事件


    一、Array数组

    1、数组初始化(Array属于对象类型)

     1 /*关于数组的初始化*/
     2 //1.创建 Array 对象--方法1:
     3     var arr1=[];
     4     arr1[0]='aa';//给数组元素赋值
     5     arr1[1]='bb';
     6     arr1[2]='cc';
     7     arr1[3]='dd';
     8     console.log(arr1);//["aa","bb","cc","dd"]
     9 //1.创建 Array 对象--方法2:
    10     var arr2=new Array();//构造一个数组对象
    11     arr2[0]='11';
    12     arr2[1]='22';
    13     arr2[2]='33';
    14     arr2[3]='44';
    15     console.log(arr2);//["11","22","33","44"]
    16 //2.创建一个数组并赋值
    17     var arr11=['a','b','c','d'];
    18     console.log(arr11);//["a","b","c","d"]
    19     var arr21=new Array('1','2','3','4');
    20     console.log(arr21);//["1","2","3","4"]
    21 //3.创建一个数组并指定长度
    22     var arr3=new Array(4);//指定数组长度为4
    23     arr3[0]='q1';
    24     arr3[1]='q2';
    25     arr3[2]='q3';
    26     arr3[3]='q4';
    27     arr3[4]='q5';
    28     console.log(arr3.length);//5(数组长度)
    29     console.log(arr3);//["q1","q2","q3","q4","q5"]
    30 //4.数组类型--object类型
    31     console.log(typeof arr3);//object

    2、数组常用方法及属性

     1 /*数组常用方法及属性*/
     2 //1.  arr. push(el1..),将新元素添加到数组末尾,并返回数组的新长度
     3     var newlen1=arr3.push('q6','q7');
     4     console.log(newlen1);//7(添加后数组长度)
     5     console.log(arr3);//["q1","q2","q3","q4","q5","q6","q7"]
     6 //2. arr. unshift(el1),将新元素添加到数组开始,并返回数组的新长度
     7     var newlen2=arr3.unshift('q0');
     8     console.log(newlen2);//8
     9     console.log(arr3);//["q0","q1","q2","q3","q4","q5","q6","q7]
    10 //3.  arr.pop( )  删除数组最后一项,并返回被删除的元素
    11     var newlen3=arr3.pop();
    12     console.log(newlen3);//q7
    13     console.log(arr3);//["q0","q1","q2","q3","q4","q5","q6"]
    14 //4.  arr.shift( )  删除第一个元素,并返回被删除的元素
    15     var newlen4=arr3.shift();
    16     console.log(newlen4);//q0
    17     console.log(arr3);//["q1","q2","q3","q4","q5","q6"]
    18 //5.1 arr.splice(3)从3的位置开始向后删除所有元素,(一个参数)
    19     var newlen5=arr3.splice(3);
    20     console.log(newlen5);//[q4","q5","q6"]返回被删元素
    21     console.log(arr3);//["q1","q2","q3"]
    22 //5.2 arr.splice(1,2) 从1的位置开始(包含1向后删除2个元素,数组形式返回所移除的元素
    23     var newlen6=arr3.splice(2,1);
    24     console.log(newlen6);//["q3"]
    25     console.log(arr3);//["q1","q2"]
    26 //5.3  arr.splice(1,2,w,k)  也可在删除元素的位置添加元素
    27     var newlen6=arr3.splice(2,1,'a','b');
    28     console.log(newlen6);//[]在q3位置加入a,b;
    29     console.log(arr3);//["q1","q2","a","b"]
    30 //6.slice(start,end); 以数组的形式返回数组的一部分,不包括end位置的元素,如果省略end将复制start及之后的所有元素
    31     var newlen7=arr3.slice(2,4);
    32     console.log(newlen7);//["a","b"]
    33     console.log(arr3);//["q1","q2","a","b"]
    34 //7.join(‘分隔符’) 用数组的元素组成字符串 
    35     var str1=arr3.join();//不加分隔符,默认加',';
    36     console.log(str1);//q1,q2,a,b
    37     console.log(typeof str1);//string
    38     var str2=arr3.join(' ');//空格
    39     console.log(str2);//q1 q2 a b
    40     console.log(typeof str2);//string
    41     var str3=arr3.join(',');//与默认结果相同
    42     console.log(str3);//q1,q2,a,b
    43     console.log(typeof str3);//string
    44 //8.concat( ) 方法用于合并数组并返回一个新数组,arr.concat(array1,array2,......,arrayN);
    45     var arr=[];
    46     var sum=arr.concat(arr1,arr2,arr3);
    47     console.log(sum);//["aa","bb","cc","dd","11","22","33","44","q1","q2","a","b"]
    48 //9.arr.reverse( ) 将数组反转 (倒过来显示)
    49     var arr4=arr3.reverse();
    50     console.log(arr4);//["b","a","q2","q1"]
    51 //10.for...in声明 用来循环输出数组中的元素
    52     for (var x in arr1){
    53         console.log(arr1[x]);//aa bb cc dd
    54     }

    3、对数组的排序(sort();)

     1 /*对数组的排序*/
     2 //1.sort( ) 文字数组从字面上对数组进行排序
     3     var arr1=['ad1','bt3','ca4','ac2','bf3'];
     4     console.log(arr1);
     5     arr1.sort();
     6     console.log(arr1);//['ac2','ad1','bf3','bt3','ca4']
     7     var arr2=['5','21','41','5','18','41','5','75'];
     8     console.log(arr2);
     9     arr2.sort();
    10     console.log(arr2);//["18","21","41","41","5","5","5","75"]
    11 //2.1 sort(function (a,b){return a-b(升序)}); 数字数组按数值排序
    12     var arr3=['5','31','41','5','18','41','5','75'];
    13     console.log(arr3);
    14     arr3.sort(function(a,b){return a-b});//升序
    15     console.log(arr3);//["5","5","5","18","31","41","41","75"]
    16     /*arr3.sort(function(a,b){return b-a});//降序
    17     console.log(arr3);*/
    18 //2.2 按数值排序,删去重复项
    19     var newarr=[];
    20     for (var i = 0; i < arr3.length; i++) {
    21         if (arr3[i]==arr3[i+1]) {
    22             continue;
    23         } 
    24         newarr.push(arr3[i]);//放在新的数组里newarr,push添加到数组末尾
    25 
    26     }
    27     console.log(newarr);
    28 //3.封装排序函数 sort();
    29     function resetArr(arr){
    30         arr.sort(function(a,b){return a-b});
    31         var newarr=[];
    32         for (var i = 0; i < arr.length; i++) {
    33             if (arr[i]==arr[i+1]) {
    34                 continue;
    35             }
    36             newarr.push(arr[i]);
    37         };
    38         return newarr;
    39     }
    40     var arr4=[12,45,45,12,2,8,5,85,5,12];
    41     console.log(arr4);
    42     var arr5=resetArr(arr4);//调用执行函数
    43     console.log(arr5);

    4.数组Tab切换

    var tab=document.getElementById('tab');
            var spans=tab.getElementsByTagName('span');
            var img=tab.getElementsByTagName('img')[0];
            var h2=tab.getElementsByTagName('h2')[0];
            var arr=[['01.jpg','02.jpg','03.jpg'],['战狼','速度与激情8','暴疯语']];
            for (var i = 0; i < spans.length; i++) {
                spans[i].onclick=function(){
                    for (var j = 0; j < spans.length; j++) {
                        if(spans[j]==this){
                            this.className='show';
                            img.src=arr[0][j];//通过数组传递数据
                            h2.innerHTML=arr[1][j];
                        }else{
                            spans[j].className='';
                        };
                    };
                };
            };

    二、参数对象arguments

    参数对象arguments是指向实参对象引用
    arguments并不是真正的数组(用法跟数组相同),它是一个实参对象
    实参对象包含以数字为索引的一组元素以及length属性

    function test(a,b,c){
        console.log(arguments[1]);//2
        console.log(b);//2 与上面引用结果相同
        console.log(arguments[3]);//4,获得第四个实参,只能通过arguments引用
        console.log(arguments.length);//6
        return a+b+c;//6
    }
    console.log(test(1,2,3,4,5,6));//6

    三、 数字和字符串转换

    1、字符串转换成数字
    parseInt(string) : 函数返回一个整数
    parseFloat(string) :函数将字符串转换成浮点数
    举例:parseInt('20.5px') : 返回 20
    举例:parseFloat('31.24abc') : 返回 31.24
    如果解析不到数字,则返回一个NaN 非数字值
    可以用isNaN( )函数来检测,返回一个布尔值

     1 /*字符串转化成数字*/
     2 //1.parseInt(string) :函数返回一个整数
     3     var h1="105.6px";
     4     var x1=parseInt(h1);
     5     console.log(x1);//105
     6 //2.parseFloat(string) :函数将字符串转换成浮点数
     7     var x2=parseFloat(h1);
     8     console.log(x2);//105.6
     9 //3.如果解析不到数字,则返回一个NaN 非数字值;可以用isNaN( )函数来检测,返回一个布尔值
    10     var h2="a105.6px";
    11     var x3=parseInt(h2);
    12     console.log(x3);//NaN 
    13   /*isNaN( )的应用 */
    14     var ipt=document.getElementById('ipt');
    15     ipt.onchange=function(){
    16         if (isNaN(ipt.value)) {
    17             alert('亲,只能输入数字!');
    18         } else {
    19             alert('恭喜,输入成功!');
    20         }
    21     }

    2、数字转换成字符串
    toString()方法将数字转换成字符串返回

    1 /*数字转化成字符串*/
    2     var n=12;
    3     var str=n.toString();//返回字符串
    4     console.log(typeof n);
    5     console.log(typeof str);

    3、数字+ 与 字符串+ 的区别
    数字的加法与字符串的连接都是 + 符号
    是加法运算还是字符串的连接,取决于变量的类型
    var a = 'abc' + 'xyz'; //a的值为:abcxyz,字符串与字符串是连接
    var a = 10 + 5; //a的值为:15,都是数字即相加
    var a = 'abc' + 10; //a的值为:abc10字符串与数字,自动将数字转换成字符串
    var a = 'abc' + 10 + 20 + 'cd'; //a的值为:abc1020cd
    var a = 10 + 20 + 'abc' + 'cd'; //a的值为:30abccd,先数字相加,然后再与字符串连接

    四、获取标签的值(innerText/innerHTML)

    innerText就是标签中所有包含的代码内容(包括标签)
    innerHTML 就是标签中所有包含的代码解释出来之后显示的内容(不包括标签)
    value 获取表单元素的值,如input, textarea, select
    实例:
    <p id="p1">内容1<span>内容2</span></p>
    p1.innerText的值是:内容1<span>内容2</span>
    p1.innerHTML的值是:内容1 内容2

    五、鼠标事件(mouseenter/mouseleave)

    鼠标指针进入被选元素或其子元素,都会触发mouseover事件
    鼠标指针离开被选元素或其子元素,都会触发mouseout事件

    鼠标指针进入被选元素时,会触发mouseenter事件
    鼠标指针离开被选元素时,会触发mouseleave事件

  • 相关阅读:
    一个基于Angular+Ionic+Phonegap的混合APP实战
    Kafka
    kafka
    Kafka
    归并排序
    插入排序
    CC1310的晶振问题
    CC1310的RSSI值问题
    CC1310之使用SMARTRF STUDIO
    CC1310电源
  • 原文地址:https://www.cnblogs.com/paulirish/p/5792955.html
Copyright © 2020-2023  润新知