JS学习第四课
javaScript 基础
javascript的组成:
1.ECMAScript : 翻译,解释器
2.DOM 文档对象模型(Document Object Model) 操作HTML的能力 document
对html的操作统称dom操作
3.BOM 浏览器对象模型(Browser Object Model) 操作浏览器本身 window
对浏览器的操作统称bom操作
ECMA 几乎没有兼容性问题
DOM 有一些操作不兼容
BOM 没有兼容问题(完全不兼容)
变量类型
类型:typeof 运算符 (用法例子: alert(typeof a);)
常见类型:number , string, boolean, undefined, object, function
为避免混乱,同一个变量最好只存放一种类型的数据。
变量类型转换
1.显式类型转换
parseInt用法:
(用来转换整数)
例子1:
<script>
var a = ‘12’
alert(parseInt(a));
</script>
结果为12
例子2:
<script>
var a = ‘12px34’
alert(parseInt(a));
</script>
结果为12, 碰到不是number就停了
例子3:
<script>
var a = ‘abc’
alert(parseInt(a));
</script>
结果为NaN (not a number)
注意小特性,JavaScript中NaN 和NaN是不相等的。
例子:
<script>
var a = parseInt(‘abc’);
alert(isNaN(a));
</script>
返回结果为true
isNaN为内置函数,来判断一个变量是否为NaN
parseFloat用法 :转换小数
2.隐式类型转换
例子1:
<script>
var a = 5;
var b = ‘5’;
alert(a == b); //ture 先转换类型,再比较
alert(a === b) //false 不转换类型,直接比
</script>
例子2:
<script>
var a = ’12’;
var b = ‘5’;
alert(a+b); //结果为125 加号作用1.字符串连接 2.数字相加
alert(a-b); //结果为7 减号作用:数字相减
</script>
此处减号进行了隐式转换。
变量作用域
全局,局部 和java基本一样。
闭包
子函数可以使用父函数的局部变量
命名规范
可读性——别人能看的懂
规范性 ——符合规则
匈牙利命名法: 类型前缀,首字母大写
例子:aTxT, oDiv
运算符
常用的
算术: 加、减、乘、除、取模
赋值: = 、+=、*=、/+、%=
关系:<、>、<=、>=、==、===,!=、!==
逻辑:与&&,或||, 非!
运算符号优先级:括号
程序流程控制
判断:if 、 switch 、 ?:
例子:
switch(变量) {
case 值1:
语句1
break;
case 值2:
语句2
break;
case 值3:
语句3
break;
。。。。。
default:
语句n
}
default 可不写
循环:while,for
跳出:break(中断整个循环),continue(中断本次循环)
什么是真: true,非零,非空字符串、非空对象
什么是假: false,数字零,空字符串、空对象(null)、undifined
Json
<script>
var json = {a:5, b:6; c:’abc’}
var arr = [12,3,4]
alert(json.a); // 也可写作alert(json[‘a’])
alert(arr[0]);
</script>
json的下标实际上是字符串,数组是int。 json没有length,不像数组有arr.length。
之前的循环取数组中元素写作:
for (var i = 0; i< arr.length;i++) { …..}
然而json没有length,可以写做:
for (var i in json) {…..}
小建议,每次处理数组时用第一种写法,处理json用第二种