2013.8.21
#########命名规范#####################
命名规范及必要性
可读性--能看懂
规范性--符合规则
匈牙利命名法
类型前缀
首字母大写
前缀:
数组: a
布尔值: b
浮点数: f
函数: fn
整数: i
对象: o
正则表达式: re
字符串: s
变体变量: v
########运算符#######################
算术: +加、-减、乘*、/除、%取模,
和c不一样的是/除,在js里会除出小数来的,和c不一样!!!
赋值:和c一样
关系:和c不一样的地方有:===、!==,注意==和!=时的隐式转换
逻辑:和c一样
运算符优先级:括号
~~~~~~~~~隔行变色~~~~~~~~~
<!DOCTYPE HTML>
<html>
<head>
<title>隔行变色</title>
<meta charset="utf-8" />
<script>
window.onload=function ()
{
var aLi=document.getElementsByTagName('li');
for(var i=0; i<aLi.length; i++)
{
// i
if(i%2 == 0)
{
aLi[i].style.background='#CCC';
}
else
{
// 1 3 5 7 9
aLi[i].style.background='red';
}
}
};
</script>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
###########程序流程控制###################
判断:if、switch、 ?:
循环:while、for
跳出:break、continue
什么是真、什么是假
真:true、非零数字、非空字符串、非空对象
假:false、数字零、空字符串、空对象、undefined
上面的结构书写语法上和c一个德性。但有些地方适用范围有点不同。
比如switch就不一样。在c中switch的变量必须是整数或者常量
而在js中,可以是任何类型。
~~~~~~~~~~下拉列表之性别信息~~~~~~~~~~~~~~~~~~~`
<!DOCTYPE HTML>
<html>
<head>
<title>性别信息</title>
<meta charset="utf-8" />
<script>
var getSelectValue = function ()
{
var oSel = document.getElementById("sel");
// 得到下拉列表中的选项值
var sGender = oSel.options[oSel.selectedIndex].value;
switch(sGender)//在js中,switch可判断字符串等类型
{
case "男":
case "女":
alert("你是一个"+sGender+"人!");
break;
default :
alert("你是个变态!!!");
break;
}
}
</script>
</head>
<body>
<p>请选择你的性别</p>
<select name="sell" id="sel">
<option value="男">男</option>
<option value="女">女</option>
<option value="不男不女">不男不女</option>
</select>
<input id = "btn" type = "button" value = "性别信息" onclick = "getSelectValue()" />
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
############Json######################
什么是Json
Json和数组
Json和for in
Json和数组有点像,都是用来存东西的。
var json={a: 12, b:5, c:'abc'}; //大括号,冒号
json.b++;
alert(b);
注意json和数组间的相似地方和不同之处
var json={a: 12, b: 5, c: 7};
var arr=[12,5,7]; // 数组
数组的下标是一个数字,json的下标是一个字符串。
alert(json['a']);
alert(arr[0]);
数组有length,json没有length
alert(json.length) //undefined
循环
数组的循环有两种方式
(1)
for(var i=0; i<arr.length; i++)
{
alert(arr[i]);
}
(2)
for(var i in arr) // 这个我之前没有见过,叫for in方法
{
alert(arr[i]);
}
for in 不仅可以用于数组,也可以用于json,
用for in可以解决json循环的问题
for( var i in json) // 这个i是第一个属性
{
alert('第'+i+'个东西: ' + json[i]);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<!DOCTYPE HTML>
<html>
<head>
<title>找出一句话中相同单词出现的次数</title>
<meta charset="utf-8" />
<script>
/*
需求:找出一句话中相同单词出现的次数
思路:先将一句话strSentence的单词拆分出来放在一个数组aStrWords中,然后准备一个json,计划其中放置的数据样式是
类似于{"hello": "1", "good": "2"};
先遍历数组aStrWords,每遇到一个数组中的元素(就是从句子中拆分出来的字符串),则检查json中是否有相应的元素。
这里检查的方法是通过判断json中是否有定义来进行的,如果有定义,则json中肯定有(对应else),则将其对应的数字加1.
如果没有定义,if(typeof(json[aStrWords[i]])=='undefined'),
则将这个单词加入json中,并将其对应的值设置为1.
缺陷:分隔单词的时候没有考虑到其他的符号,如逗号,分号等
*/
var strSentence = "i love you dan dan i love my girl";
var aStrWords = strSentence.split(" ");
var json={};
for( var i in aStrWords)
{
if(typeof(json[aStrWords[i]])=='undefined')
{
json[aStrWords[i]]=1;
}
else
{
json[aStrWords[i]]++;
}
}
for( var j in json)
{
alert(j+": "+json[j]);
}
</script>
</head>
<body>
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##########函数返回值####start###############
函数返回值
什么是函数返回值
函数的执行结果
可以没有return
一个函数应该只返回一种类型的值
##########函数返回值####end###############
############函数传参#######################
arguments 可变参,不定参
<script>
function sum() // 参数列表为空时,参数可以不固定,
{
alert(arguments.lenth);//3
alert(arguments[0]);//12
var result = 0;
for(var i=0; i<arguments.lenth; i++)
{
result+=arguments[i];
}
return result;
}
alert(sum(12,6,9));
</script>
###################################
dan推荐前端学习资料http://www.rainweb.cn/article/javascript-scope.html
###################################
###################################