JavaScript及jQuery学习笔记(0)

最后更新日:2014年11月17日
本章介绍了些javascript的小注意点。另外,在平时我们用的最多的就是数组和对象。
<html>
<head>
<script>
function test(a){
	return a + '01';
};

function b(){
	var ret = test(0011);//八进制9
	//var ret = test('0011');//表示字符串0011
	document.getElementById("a").innerHTML=ret;
	//结果并非是0.3,其它语言也有这种情况
	console.log(0.1+0.2);//System.out.println(0.1+0.2);
	console.log(+1);
	console.log([]);//Array[]
	console.log(+[]);//0
	console.log([]+1);//1
	console.log(++[[]][0]);//1
	console.log([0]);//Array[0]
	console.log([0][0]);//0
	console.log(+[0]);//0
};
</script>
</head>
<body onload="b()">
<div id="a"></div>
<body>
</html>

<html>
<head>
<script src="test.js"></script>
</head>
<body>
</body>
</html>



//example 1
//可简单的理解为b是对function的引用,加上()即让函数执行
var 
	a,
	b = function(){
		console.log(1);
	};

b();

a = b;

console.log(a);


//example 2 
//自调用匿名函数
//funtion(){}();//错误

(function(){})();//正确

(function(){}());//正确
//注:现jQuery版本1.11.1及2.1.1使用的就是上面的方式
/**
(function( global, factory ) {}(
								typeof window !== "undefined" ? window : this, 
								function( window, noGlobal ) {}
								)
);
*/

!function(){}();//正确

//example 3 
//将自调用匿名函数添加到window对象上
(function(){
	var x=10,
		y=20,
		z;
	z = x + y;
	console.log(z);
})(window);


!function(){
	console.log(window);

	/**
	①
	undefined = "I am undefined";
	console.log(undefined);//各浏览器各版本可能显示不一样,谷歌37显示为undefined
    */

	/**
	②
	var undefined = "I am undefined";
	console.log(undefined);//I am undefined
	*/

	//当①和②同时出现时,则两个值一样(是'I am undefined')
	undefined = "I am undefined";
	console.log(undefined);

	var undefined = "I am undefined";
	console.log(undefined);

}();




<html>
<head>
<script src="test.js"></script>
</head>
<body onload="test()">
</body>
</html>


function a(){
	console.log(1);
};

//通过new创建对象
var x = new a();//调用了a方法

var y = new Object();
y.x = "2";
console.log(y.x);

var z1 = Object.create([1,2,3]);
console.log(z1);

var z2 = Object.create({key1:"value1",key2:"value2"});
console.log(z2);

//原型继承创建一个对象
var a = {x:1,y:2};

function newIt(){};
newIt.prototype = a;

var b = new newIt();

b.x = 10;
b.z = 3;
console.log(b);//Object {x: 10, y: 2, z: 3}

//JavaScript权威指南中讲到:
function inherit(a){
	if(a==null) {console.log('It is null');throw TypeError();}
	if(Object.create) {console.log('It is Object.create');return Object.create(a);}
	var checkType = typeof a;
	if(checkType!=="object"&&checkType!=="function"){console.log('type error'); throw TypeError();}
	function emptyConstruct(){};
	emptyConstruct.prototype = a;
	return new emptyConstruct();
};


<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a id='a' class='a' href='1.png' title='this is a picture' onclick='test();return false;'>Test Picture</a>
<img id='x' src='blank.png' alt='hello world'/>
<div id='d'></div>
<a id='b' href='a.html' accesskey='y'>click me</a><!-- Alt+Y -->
<script>
function test(){
	//var x = document.getElementsByClassName('a');
	var x = document.getElementsByTagName('a');
	var y = x[0].getAttribute('href');
	var z = document.getElementById('x');
	//getElementById得到的是对象,不是数组,因此不是z[0]
	z.setAttribute('src',y);//z.src = y;	
};
</script>
<script>
var x = document.getElementsByTagName('body');
var y = x[0].childNodes;//显示所有子节点
y = x[0].firstChild;//显示第一个节点
y = x[0].lastChild;//显示最后一个节点
/*
var y = x[0].nodeType;
for(var i in y){
	//nodeType{1:元素节点;2:属性节点;3:文本节点}
	console.log(y[i].nodeType);
}
*/
var z = document.getElementsByTagName('a');
console.log(z[0].childNodes[0].nodeValue);//Test Picture
//window.open('test.html','hello','width=300,height=300');
</script>
<script>
document.write("<p id='p'>this is p</p>");
document.getElementById('p').innerHTML = 'this is another p';
var newP = document.createElement('p');
var newDivText = document.createTextNode('this is div');
var newDiv = document.getElementById('d');
newP.appendChild(newDivText);
newDiv.appendChild(newP);
//newElement:新元素;parentElement:父元素;targetElement:目标元素
//parentElement.insertBefore(newElement,targetElement)
</script>
<script>
function t(){
	document.getElementById('b').style.background = "#"+("00000"+((Math.random()*16777215+0.5)>>0).toString(16)).slice(-6);
};
//setTimeout("t()",1000);
setInterval("t()",1000);
</script>
</body>
</html>
<!--
<p class="a" id="b"><h1>hello</h1></p>
<p>world</p>
p.a{
   //TODO
}
#b h1{
   //TODO
}
-->


其它请参考附件

你可能感兴趣的:(JavaScript,html,jquery)