上篇文章讲了
js
中的
传值和传址
和
函数的作用域
.
这章我们来探讨
js
中
的变量,表达式,和运算符
还有一些
js
语句。
升级中
……
1,
表达式:
最简单的表达式:直接量或者变量名。
var a =1;
直接量表达式的值:本身。
变量表达式的值:该变量所存放或引用的值。
2 ,
运算符:
一元运算符:
比如
- 3
二元运算符:
比如
3+4
三元运算符:
比如
? :
新手常遇到的问题:
递增运算符:
比如:
i = 1 ;
j = ++ i ; //
前递增运算,即先对运算数进行递增,然后再去计算。
//
输出
i =2; j=2 ;
i = 1 ;
j = i ++; //
后递增运算,即先去计算,然后再对运算数进行递增。
//
输出
i =2; j=1 ;
3,
相等运算符:
=
:
赋值运算符;
==
:
相等运算符;
===
:
等同运算符;
值
NaN
永远不会与任何值相等,包括自己。
alert(NaN == NaN); //false NaN
意思为
Not a Number
要检测一个值是否是
NaN,
可以使用全局函数
isNaN();
另外新手要注意:
var a =[1,2,3];
var b =[1,2,3];
document.write(a==b); //
输出
false .(
这个其实是
第一章讲的内容。
)
//
虽然值相同,类型相同,但址不同。
--------------------------------------------------------
var a =[1,2,3];
var b = a ;
var c = a ;
document.write(b===c);//
输出
true;
--------------------------------------------------------
var a = "1";
var b = true ;
document.write(a==b); //
输出
true
document.write(a===b); //
输出
false
;
值相同,
类型不同
4,
比较运算符:
要注意的就是字符串是进行琢个比较。
而且会区分大小写。
如果你的需求是不区分大小写:
可以使用
String.toLowerCase() //
纯小写
String.toUpperCase() //
纯大写
转换后
,然后再去比较
.
5, in
运算符:
要注意的是:左边的值是其右边对象的属性。
比如:
var a = { x : 1 , y : 2 };
var b = “x” in a ; // true
var c = “toString” in a ; // true .
左边的值是其右边对象的属性。
6 instanceof
运算符:
要注意的是:左边的运算数是一个对象,右边的运算数是对象类的名字。
比如:
var a = new Date()
a instanceof Date; // true
a instanceof Object ; // true
a instanceof Number ; // false
7, 3
元条件运算符:
要注意的是:第一个运算数必须是一个布尔值。
X > 0 ? 3 : 2 ;
8, typeof
运算符:
要注意的是:由于
typeof
对所有的对象和数组都是返回
object;
所以它只能区分对象和原始数据类型时才有用。
要区别一种对象类型和另一种对象类型,可以使用
instanceof
和
constructor
属性。
9, delete
运算符:
要注意的是:并不是所有的属性和变量都能删除。
比如:
用
var
语句声明的变量不能被删除。
另外
;
当
delete
删除一个不存在的属性时,返回
true
;(
^_^
,这个比较搞笑。)
var a = 1;
alert( delete a ); //
返回
false
alert( delete a.x ); //
返回
true
还有一个应该注意:
Delete
所能影响的只是属性值,并不能影响被这些属性引用的对象。
比如:
var my =new Object();
my.height = new Date();
my.width = my.height;
delete my.height ;
document.write(my.width);// my.width
仍然是引用
Date
对象
10,void
运算符:
void
的一个用途:
专门生成
undefined
值、
alert( void(0) )
alert( void(1) ) //
都输出
undefined
这里的
undefined
实际是
void()
运算后的
值
。
考虑到向后兼容性,用表达式
void 0
比使用
undefined
属性更有用
.
11,
异常处理:
抛出异常:
throw
捕捉异常:
try / catch / finally
If(x>0)
throw new Error(“x must not be negative!”);
try{
}
catch(e){
}
finally{ //
总是被最后执行
。通常进行
消除操作。
}
12,with
语句:
var form = frame[1].document.forms[0];
form.name.value = “ “;
form.address.value =” “;
这样可以使用
with
语句代替
;
比如:
with(frame[1].document.forms[0])
{
name.value = “ “;
address.value =” “;
}
当然书上强烈不推荐使用
with
,
呵呵。效率低,问题多多。
总结:
主要介绍了
js
中的变量,表达式,和运算符
还有一些
js
语句。
如果还有不懂,可以
google
搜索资料
. (
学会使用搜索,你也就很厉害了。
)
转眼间,学了
3
章了,
不知道大家感觉如何。
将就些吧,学习最重要的还是靠自己,不懂或者有疑问的地方马上
写例子测试,验证。或者查资料。
这样可能印象会更深入些。
加油
…….
posted on 2008-10-15 14:29
JasonChou 阅读(213)
评论(0) 编辑 收藏 所属分类:
html