10.JavaScript组成
ECMAScript:翻译 js核心 解释器
DOM(Document Object Model) HTML文档
BOM(Browser Object Model) 浏览器
兼容性:
ECMA 几乎没有兼容性问题
DOM 有一些操作不兼容
BOM 没有兼容问题(完全不兼容)
11.变量
变量类型
变量本身没有类型,就看你存到东西是什么
var a=1; number
a='abcd'; string
a=true; boolean
a=function() function
a=document object
var b; undefined
一个变量最好只存放一种类型的数据
typeof x 返回x的变量类型
变量类型转换
1.显式类型转换
var a='12';
parseInt(a)+1==13
var b=12bc;
parseInt(b)==12
var c=abc;
parseInt(c)==NaN //Not a Number
var d=bcd;
parseInt(c)!=parseInt(d) //NaN!=NaN
判断函数 isNaN()
alert(isNaN(c)) //true
var e=3.5;
alert(pasreInt(e)); //3
alert(pasreFloat(e)); //3.5
2.隐式类型转换
var a=1;
var b='1';
alert(a==b); //true 现转换类型再比较
alert(a===b); //false 不转换类型比较
------------------------------------
var a='12';
var b='5';
alert(a+b); //125
alert(a-b); //7
变量作用域
局部变量:在函数内定义的,只能在该函数内使用
全局变量:定义在所有函数外的,都能使用
什么是闭包?
子函数可以使用父函数的局部变量
12.JS命名规范
可读性
规范性 匈牙利命名法(1.类型前缀;2.首字母大写)
类型 前缀 类型 实例
数组 a Array aItems
布尔值 b Boolean bIsComplete
浮点数 f Float fPrice
函数 fn Function fnHandler
整数 i Integer iItemCount
对象 o Object oDiv1
正则表达式 re RegExp reEmailCheck
字符串 s String sUserName
变体变量 v Variant vAnything
13.取模’%’
秒转时间
156秒 ==> 2分36秒 ==> 156/60分156%60秒