JavaScript学习笔记

1、强制类型转换

(1)显示转换

parseInt(a)是将a里面的数字转换成整数类型,如果a是字符串,那么从左到右开始将数字取出,直到遇到第一个非数字的字符即跳出。

例如:var a = '12as25';

   var b = parseInt(a);

则b的值为12。

如果a第一个字符就不是数字,则b的值为NaN。

parseFloat(a)是转换成float型,如果是整型值,则会转成整型。

(2)隐式转换

例:var a = 1;

var b = ‘1’;

a==b的值为true。==运算符会先将b的类型转换成a的类型,然后进行比较。即先转换再比较。

a===b的值为false。===运算符不进行转换,直接比较a和b的值。

a-b的值为0。-运算符也会进行类型转换之后再进行减法运算。但是+则不行,因为+有两种功能,一是字符串连接,一是数字相加。


2、关于NaN(Not a Number,即非数字)

a、任何数字跟NaN相加的结果都是NaN。

b、NaN与NaN不相等。

c、检测一个值是不是NaN可以用方法: isNaN(a);


3、闭包

子函数可以使用父函数的局部变量就叫闭包。


4、命名规范

匈牙利命名法:类型前缀+首字母大写。



5、流程控制

(1)跳出:break、continue

break是结束整个循环,continue是结束本次循环,下面的循环还会继续。

(2)什么是真什么是假

真:true、非零数字、非空字符串、非空对象。

假:false、数字零、空字符串、空对象、undefined

(3)for in循环

对于json循环取值可以采用for in循环。

<script>
    var json = {a:12 , b:5 , c:'abc'};
    for(var i in json){
       alert('第'+i+'个json数据的值是'+json[i]);    
    }
</script>


6、json

var json = {a :12 , b : 5 , c = 'abc'};

使用的时候直接 json.a 或者 json['a']即可取出值 12。


7、可变参(不定参):arguments

参数的个数可变,参数数组。

<script>
	function sum()
	{
		var result=0;
		
		for(var i=0;i<arguments.length;i++)
		{
			result+=arguments[i];
		}	
		
		return result;
	}
	
	alert(sum(12, 6 ,8));
</script>

8、获取非行间样式

<script>
	//可以获取width、height等单一样式值
	//不可以获取类似background等复合样式的值,取背景颜色可以使用backgroundColor
	function getStyle(obj, name)
	{
		if(obj.currentStyle)
		{
			//针对IE浏览器
			return obj.currentStyle[name];	
		}	
		else
		{
			//针对于火狐等浏览器
			//getComputedStyle(obj, false)第二个参数没作用,随便传什么都行
			return getComputedStyle(obj, false)[name];	
		}
	}
	
	//调用例子,获取div对象的宽度
	alert(getStyle(oDiv, 'width'));
	
</script>

9、数组

数组的length

可以获取也可以赋值

例如: var arr = [1, 2, 3, 4, 5, 6];

     arr.length = 3;

这时候数组的长度就变为3了,如果length=0;则可以清空数组。



sort使用例子:

<script>
	var arr=[12, 89, 99, 19, 112]
	arr.sort(function (n1, n2){
		if(n1<n2)
		{
			return -1;
		}
		else if(n1>n2)
		{
			return 1;
		}
		else
		{
			return 0;	
		}
	});
	
	alert(arr);
</script>

或者可以写成

<script>
	var arr=[12, 89, 99, 19, 112]
	arr.sort(function (n1, n2){
		return n1-n2;
	});
	
	alert(arr);
</script>


a.concat(b);就是数组a连接数组b。

var arr = [1,2,3];

arr.join('-');

结果就是1-2-3-4。


splice(a, b, c, d,.....)表示的是从a位置开始,删除b个数值,然后从a位置开始插入c, d, ....等值。


10、定时器


setInterval使用例子:

实现效果为1秒弹一次窗口

<script>
	function show()
	{
		alert('a');	
	}
	
	setInterval(show, 1000);
</script>

setTimeout使用例子:

实现效果,1秒后弹出窗口

<script>
	function show()
	{
		alert('a');	
	}
	
	setTimeout(show, 1000);
</script>

clearInterval使用例子:

<script>
	var timer = null;
	function show()
	{
		alert('a');	
	}
	//开启定时器之后会有一个返回值
	timer = setInterval(show, 1000);
	//关闭指定的定时器
	clearInterval(timer);
</script>


实现一个数码时钟效果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>

<script>
function toDou(n)
{
	if(n<10)
	{
		return '0'+n;	
	}	
	else
	{
		return ''+n;	
	}
}

window.onload = function()
{
	var aImg = document.getElementsByTagName('img');

	function tick(){
		var oDate=new Date();
		var str=toDou(oDate.getHours())+toDou(oDate.getMinutes())
		+toDou(oDate.getSeconds());
		
		for(var i=0;i<aImg.length;i++)
		{
			aImg[i].src='img/'+str.chatAt(i)+'.png';
		}
	}
	setInterval(tick, 1000);
	tick();
}
	
</script>
</head>

<body>
<img src="img/0.png"/>
<img src="img/0.png"/>
:
<img src="img/0.png"/>
<img src="img/0.png"/>
:
<img src="img/0.png"/>
<img src="img/0.png"/>
</body>
</html>

使用offsetLeft/offsetTop可以实现无缝滚动。











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值