1、JavaScript的组成:
a.ECMAScript:解释器,翻译
b.DOM:DocumentObject Model // 操作HTML的能力
c.BOM:BrowserObject Model //操作浏览器的能力
各组成部分的兼容性,ECMAScript几乎没有兼容性问题,DOM兼容性一般,BOM完全不兼容一般不用。
2、变量类型:typeof运算符
var a=12;
alert(typeof a);//会弹出number。
函数也有自己的类型,function。document是Object类型。
变量的类型取决于你存的东西。
常见的类型number,string,Boolean,undefined,object,function。
一个变量应该只存放一种类型。
3、数据类型之间的转换:
var a="12";
parseInt(a)+1;//可以把字符串转成数字,从左导游扫描字符串,一旦发现不是数字就会跳出,因此他可以实现把左边的数字提出来。
var a="aaa";
alert(parseInt(a));//会弹出NaN,not a Number。
NaN和NaN是不相等的,js里面有函数isNaN(a);判断是否是NaN。
parseInt转换的是整数,不能转换小数,而parseFloat转成小数,因此可以都用parseFloat。
隐式类型转换:
==、===、减法。
var a=5;
var a=‘5’;
alert(a==b)//弹出true。因为转换类型比较
alert(a===b)//弹出false,不转换类型直接比较,全等于。
var a='12';
var b='5';
alert(a-b);//弹出7,隐式转换。+号做字符串连接和数字相加,默认相加。减号只有数字相减。
4、变量作用域和闭包:
局部变量、全局变量,作用范围跟其他语言一样
子函数可以使用父函数的变量
5、命名规范:
可读性、规范性。
匈牙利命名法:类型前缀、首字母大写。
类型 前缀 类型 实例 数组 a Array aItems 布尔值 b boolean bIsComlete 浮点数 f float fPrice 函数 fn Function fnHandler 整数 i Integer iItemCount 对象 o Object oDivl 正则表达式 re RegExp reEmailCheck 字符串 s String sUserName 变体变量 v Variant vAnvthing
6、运算符:
算数:+、-、*、%;实例隔行变色
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
window.onload=function()
{
var aLi=document.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++)
{
//
if(i%2==0)
{
aLi[i].style.background='#CCC';
}
}
}
</script>>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
赋值:+、+=、-=、++、--、/=、%=
关系:<、>、==、===、!=、!==
逻辑:&&、||、!
实例全选与反选
运算符优先级:括号。
7、程序流程控制:
for,while等
switch里面可以是字符串,三目运算符?,
8、JSON:
什么是Json?
也是用来存东西的,
var a=12;var b=5;var c='abc';
var json={a: 12,b: 5,c: 'abc'};
alert(json.a);//可以像普通变量一样使用。
和数组的区别
var json={a: 12,b: 5,c: 'abc'};
var arr=[12,5,7];
alert(json.a);//等价于下一个
alert(arr[0]);
alert(json['a']);//json的下标是字符串。
json没有length,json关于循环怎么办呢?
//数组的循环
for(var i=0;i<arr.length;i++)
{
alert('第'+i+'个'数字);
}
//另一种for in循环
for(var i in arr)
{
alert('第'+i+'个'数字);
}
因此json可以用for in循环输出。