ECMA 几乎没有兼容性问题
DOM 有一些操作不兼容
BOM 没有兼容问题(完全不兼容)
变量的类型 (1)
类型检验:typeof运算符
数字变量:number、string、boolean、undefined、object、function
一个变量应该只存放一种类型的数据
变量类型(2):数据类型转换
显示类型转换:
parseInt:从左到右遍历,碰到非数字就跳出去,出来的都是整数
非数字:NaN Not a Number
NaN != NaN
判断一个函数是否是NaN用 isNaN()
函数判断
parseFloat:讲一个字符串转换成一个小数
隐式类型转化:
、==:先转换类型,在比较
===:不转换类型,直接比较
变量作用域:变量能起作用的范围
var a = 12; //全局变量,任何地方都能使用
function aaa() {
var a = 12; //局部变量,只能在定义它的函数里面使用
}
function bbb() {
alert(a); //会报错
}
闭包:子函数可以使用父函数的局部变量
function aaa() {
var a = 12;
function() {
alert(12);
}
}
命名规范
可读性–能看懂
规范性–符合规则
匈牙利命名法
- 类型前缀
- 首字母大写
命名规范(2)
类型 | 前缀 | 类型 | 实例 |
---|---|---|---|
数组 | a | Array | aItems |
布尔值 | b | Boolean | bIsComplete |
浮点数 | f | Float | fPrice |
函数 | fn | Function | fnHandler |
整数 | i | Integer | iItemCount |
对象 | o | Object | oDiv1 |
正则表达式 | re | RegExp | reEmailCheck |
字符串 | s | String | sUerName |
变体变量 | v | Variant | vAnything |
经典案例:document.getElementsByTagName