JavaScript基本组成

数组

定义:一组数据的集合
创建方式:

var aList = [1,2,3];

操作数组的方法

  • 获取数组的长度:aList.length;
  • 用下标操作数组的某个数据:aList[0];
  • join() 将数组成员通过一个分隔符合并成字符串

var aList = [1,2,3,4];
alert(aList.join(’-’)); // 弹出 1-2-3-4

  • push() 和 pop() 从数组最后增加成员或删除成员
  • unshift()和 shift() 从数组前面增加成员或删除成员
var aList = [1,2,3,4];
aList.unshift(5);
alert(aList); //弹出5,1,2,3,4
aList.shift();
alert(aList); // 弹出1,2,3,4
  • reverse() 将数组反转:改变了原来的数组
var aList = [1,2,3,4];
aList.reverse();
alert(aList);  // 弹出4,3,2,1
  • indexOf() 返回数组中元素第一次出现的索引值
  • splice() 在数组中增加或删除成员
ar aList = [1,2,3,4];
aList.splice(2,1,7,8,9); //从第2个元素开始,删除1个元素,然后在此位置增加'7,8,9'三个元素
alert(aList); //弹出 1,2,7,8,9,4

多维数组

数组里面嵌套着数组

var aList = [[1,2,3],['a','b','c']];

alert(aList[0][1]); //弹出2;

循环语句

for循环:一般用于遍历数组或者集合的数据

for(var i=0;i<len;i++)
{
    ......
}

while循环:一般用在重复操作

var i=0;
while(i<4){
	...
	i+=1;
}

数组去重

思路:遍历数组,获取数据的每一个数据,判断这个数据的索引值是否等于它的下标值

var aList = [1,2,3,4,4,3,2,1,2,3,4,5,6,5,5,3,3,4,2,1];
var aList1 = [];
//遍历数组
for(var i=0; i<aList.lenth; i+=1;)
{
	if (aList.indexOf(aList[i]) == i)
	{
		aList1.push(aList[i]);
	}
}

获取元素的第二种方法

可以使用内置对象document上的getElementsByTagName方法来获取页面上的某一种标签,获取的是一个选择集,不是数组,但是可以用下标的方式操作选择集里面的标签元素。

<script type="text/javascript">
    window.onload = function(){
        var aLi = document.getElementsByTagName('li');
        // aLi.style.backgroundColor = 'gold'; // 出错!不能同时设置多个li
        alert(aLi.length);
        aLi[0].style.backgroundColor = 'gold';
    }
</script>
....
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
</ul>

这里需要注意的是 aLi是一个选择集,不是某个集体的标签,所以不能直接写样式

JavaScript的组成

1、ECMAscript javascript的语法(变量、函数、循环语句等语法)
2、DOM 文档对象模型 操作html和css的方法 比如document.getElementById
3、BOM 浏览器对象模型 操作浏览器的一些方法 比如window.onload

字符串操作

1, 字符串合并操作

var iNum01 = 12;
var iNum02 = 24;
var sNum03 = '12';
var sTr = 'abc';
alert(iNum01+iNum02);  //弹出36
alert(iNum01+sNum03);  //弹出1212 数字和字符串相加等同于字符串相加
alert(sNum03+sTr);     // 弹出12abc

特别注意数字和字符串相加的情况.

2、parseInt() 将数字字符串转化为整数

var sNum01 = '12';
var sNum02 = '24';
var sNum03 = '12.32';
alert(sNum01+sNum02);  //弹出1224
alert(parseInt(sNum01)+parseInt(sNum02))  //弹出36
alert(sNum03)   //弹出数字12 将字符串小数转化为数字整数

这里需要注意用parseInt()将含有小数的字符串转化成整数的时候,小数被舍弃,只有整数

3、parseFloat() 将数字字符串转化为小数

var sNum03 = '12.32'
alert(parseFloat(sNum03));  //弹出 12.32 将字符串小数转化为数字小数

4、split() 把一个字符串分隔成字符串组成的数组

var sTr = '2017-4-22';
var aRr = sTr.split("-");
var aRr2= sTr.split("");

alert(aRr);  //弹出['2017','4','2']
alert(aRr2);  //弹出['2','0','1','7','-','4','-','2','2']

5、charAt() 获取字符串中的某一个字符

var sId = "#div1";
var sTr = sId.charAt(0);
alert(sTr); //弹出 #

6、indexOf() 查找字符串是否含有某字符
找出字符串第一个字母的索引值,如果没有这个字符串,则结果为 -1

7、substring() 截取字符串 用法: substring(start,end)(不包括end)

var sTr = "abcdefghijkl";
var sTr2 = sTr.substring(3,5);
var sTr3 = sTr.substring(1);

alert(sTr2); //弹出 de
alert(sTr3); //弹出 bcdefghijkl

字符串反转

思路:注意点---->只有数组才能使用reverse()
先切割成数组,在反转,然后在组成字符串

var str = 'asdfj12jlsdkf098';
var str2 = str.split('').reverse().join('');

alert(str2);

定时器

定时器的类型和语法

/*
    定时器:
    setTimeout  只执行一次的定时器 
    clearTimeout 关闭只执行一次的定时器
    setInterval  反复执行的定时器
    clearInterval 关闭反复执行的定时器

*/

var time1 = setTimeout(myalert,2000);
var time2 = setInterval(myalert,2000);
/*
clearTimeout(time1);
clearInterval(time2);
*/
function myalert(){
    alert('ok!');
}

封闭函数

封闭函数是javascript中匿名函数的另外一种写法,创建一个一开始就执行而不用命名的函数。
两者的区别:
一般函数


function myalert(){
    alert('hello!');
};

myalert();

封闭函数:

(function myalert(){
    alert('hello!');
})();

优点:封闭函数可以创造一个独立的空间,在封闭函数内定义的变量和函数不会影响外部同名的函数和变量,可以避免命名冲突

常用的内置对象

  1. document
document.getElementById //通过id获取元素
document.getElementsByTagName //通过标签名获取元素
document.referrer  //获取上一个跳转页面的地址(需要服务器环境)
  1. location
window.location.href  //获取或者重定url地址
window.location.search //获取地址参数部分
window.location.hash //获取页面锚点或者叫哈希值

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">
		window.onload = function(){

			// 存储上一个页面的地址:
			//var sUrl = document.referrer;
			var oBtn = document.getElementById('btn01');

			oBtn.onclick = function(){

				//window.location.href = sUrl;
				window.location.href = "http://www.baidu.com";

			}


		}

	</script>
</head>
<body>
	<input type="button" name="" value="跳转" id="btn01">
</body>

下面是一个通过地址栏参数改变页面的例子,判断动态参数改变相应的背景

<script type="text/javascript">
		window.onload = function(){
			var oBody = document.getElementById('body01');
			var sData = window.location.search;
			alert(sData);

			var sHash = window.location.hash;
			alert(sHash);

			if(sData!='')
			{
				var aRr = sData.split("=");  //切割成数组
				var iNum = aRr[1];  //取出参数数字
				
				if(iNum==1)
				{
					oBody.style.backgroundColor = 'gold';
				}
				else if(iNum==2)
				{
					oBody.style.backgroundColor = 'green';
				}
				else
				{
					oBody.style.backgroundColor = 'pink';
				}
			}
		}

	</script>
  1. Math
Math.random 获取0-1的随机数
Math.floor 向下取整
Math.ceil 向上取整

向下取整:

//向下取整,去掉小数部分
alert(Math.floor(5.6)); // 弹出5

向上取整

//向上取整,去掉小数部分
alert(Math.floor(5.6)); // 弹出6
// 10 - 20 之间的随机数
var iN01 = 10;
var iN02 = 20;
var arr2 = [];

for(var i=0;i<40;i++)
{
	// 生成从10到20的随机数
	var iNum02 = Math.floor((iN02-iN01+1)*Math.random()) + iN01;
	arr2.push(iNum02);
}
console.log(arr2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值