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事件

时间: 2024-10-17 23:45:02

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

javascript学习笔记整理(数组)

数组是一个可以存储一组或是一系列相关数据的容器. 一.为什么要使用数组. a.为了解决大量相关数据的存储和使用的问题. b.模拟真是的世界. 二.如何创建数组 A.通过对象的方式来创建——var a=new Array(); 赋值方式: 1.直接赋值——var a=new Array(元素1,元素2,元素3,元素4,........) var a=new Array(数值)如果只有一个元素,并且这个元素是数值类型的,那么他就是指定数组的长度并且他的值都是undefined var a=new A

JavaScript学习笔记:检测数组方法

很多时候我们需要对JavaScript中数据类型( Function . String . Number . Undefined . Boolean 和 Object )做判断.在JavaScript中提供了typeof操作符可以对这些常用的数据类型做判断.但要使用typeof来判断数据是不是一个数组,就不起作用了.那在实际生产中要如何来检测数据是不是一个数组呢? 今天的学习任务就是如何来检测一个数据是不是数组? typeof操作符 typeof 可以解决大部分数据类型的检测,如: 1 cons

JavaScript学习笔记(六)----内置对象

(一).Global对象 所有在全局作用域中定义的属性和函数,都是Global对象的属性.例如isNaN().isFinite().parseInt()以及parseFloat(),实际上全是Global对象的方法. 1. URI 编码方法 encodeURI() 和 encodeURIComponent() 有效的URI不能包含某些字符,例如空格.而这两个URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解. var uri = "ht

JavaScript学习笔记【3】数组、函数、服务器端JavaScript概述

笔记来自<JavaScript权威指南(第六版)> 包含的内容: 数组 函数 服务器端JavaScript概述 数组 数组是动态的:根据需要它们会增长或缩减,并且在创建数组时无须声明一个固定的大小或在数组大小变化时无须重新分配空间. 数组可能是稀疏的:索引不一定要连续的,它们之间可以有空缺. 通常,数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快很多. 数组继承自Array.prototype中的属性,它定义了一套丰富的数组操作方法. 如果省略数组直接量中的某个

javascript学习笔记---ECMAScriptECMAScript 对象----定义类或对象

使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象. ECMAScript 拥有很多创建对象或类的方法. 原始的方式 因为对象的属性可以在对象创建后动态定义(后绑定),类似下面的代码: var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this.color); };不过这里有一

JavaScript学习笔记【2】表达式和运算符、语句、对象

笔记来自<JavaScript权威指南(第六版)> 包含的内容: 表达式和运算符 语句 对象 表达式和运算符 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充值undefined.元素列表末尾可以留下单个逗号,这时并不会创建一个新的值为undefined元素. 属性访问表达式,.identifier的写法只适用于要访问的属性名称是合法的标识符,并且需要知道要访问的属性的名字.如果属性名称是一个保留字或者包含空格和标识符,或是一个数字(对于数组来说),则必须使用方括号的写法.当属性

Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程

Swift学习笔记四:数组和字典

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten

javascript学习笔记---ECMAScript语法(引用类型)

引用类型通常叫做类(class). 本教程会讨论大量的 ECMAScript 预定义引用类型. 引用类型 引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象. 本教程会讨论大量的 ECMAScript 预定义引用类型. 从现在起,将重点讨论与已经讨论过的原始类型紧密相关的引用类型. 注意:从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现"类"这个词.ECMAScript 定义了"对象定