JavaScript 组成
ECMAScript: 翻译 解释器 ——> 几乎没有兼容问题
BOM ——> 没有兼容问题(完全不兼容)
DOM ——> 几乎没有兼容问题
变量的类型
1 | var a = 12; |
可以看出 JavaScript 很灵活
建议:一个变量应该只存放一种类型的数据
类型转换
实现:求和功能
需要:强制类型转换:parseInt() –> 转换整数 parseFloat() –> 转换浮点数1
2
3
4
5
6
7//parseInt('12abc'); //12
//parseInt('12abc12'); //12
//parseInt('abc'); //NaN
//parseInt('zxc'); //NaN
//parseInt('abc') == parseInt('zxc'); //flase NaN 和 NaN 是否相等
//isNaN(parseInt('abc')); //true
//parseInt(12) + parseInt('abc'); //NaN
隐式类型转换1
2
3
4
5
6
7
8
9var a = 5;
var b = '5';
alert(a == b); //true 先转换在比较
alert(a === b); //false 不转换就比较
var a = '12';
var b = '6';
alert(a + b); //126 1.字符串连接 2.求和(转换在加) 先简后繁
alert(a - b); //6 1.数字相减
变量的作用域及闭包
局部变量 全局变量
闭包的初步理解1
2
3
4
5
6
7
8
9
10//子函数用到了父函数的变量
function aaa(){//父函数
var a = 12;
function bbb(){//子函数
alert(a);
}
bbb();
}
命名规范
可读性 规范性
匈牙利命名法
–> 类型前缀 a(Array) b(boolean) fn(function) re(RegExp)…
–> 首字母大写
运算符
取模 实现:隔行变色 秒转时间1
2
3var s = 180;
alert(parseInt(s/60)+'m '+parseInt(s%60)+'s');
流程控制
三元运算符 ?:
break 中断 continue 继续(中断当前)
真: true 非零 非空 document
假: undefined
Json
1 | var json ={a: 12, b: 8, c: 7} |
循环:
数组 –> 正常循环
Json –> for in