javascript基础学习

1.对js来说,通过var语句声明,但是没有给初始值,那么他的初始值为undefined。

2.对未声明也未赋初值的变量返回error,但是如果是有typeof(variable)则返回undefined。

  可以通过改功能判断一个变量或者域有没有被声明,多用在类库引用时。

3.所谓的域就是大括号之间的区域(并非所有的大括号)。区域内声明的变量大多数情况下只能被该域和其子域引用,不能被域外引用,但是这个域单指函数与闭包吧。

4.查找一个变量是否存在先从当前域开始查找,然后依次扩大范围,由此而言,域内与域外定义了相同名称的变量,那么在域内引用改变量,只会引用该域的变量,而并非域外的变量。

5.如果一个变量在域中声明,那么它作用于域的所有范围内。这点与java不同,一下是我举得例子。

js代码

function a(){
for(i=0;i<1;i++){
for(j=0;j<1;j++){
alert (j);
}
}
alert(j);
}
a();

可以输出变量j来。

java代码

package org.spring;

public class mian {

/**
*
@param args
*/
public static void main(String[] args) {
for(int i=0;i<1;i++){
for(int j=0;j<1;j++){
System.out.println(j);
}
}
System.out.println(j);
}

}

还没输出就报编译错误了。所以说这是java与js的不同。书上说,这是由于,js没有块的概念。

6.常量表达式的值就是这个常量本身 ,变量表达式的值,是这个变量存放或引用的值。

7.当除法的除数是0时返回的是Infinity,而如果是0/0则将得到NaN。

8.js中做除法运算时,与java不同的是,会保留精度。3/2=1.5,若不需要,则应用Math.floor(3/2)=1

9.&&运算符,若左边的表达式它的值为false或者可以被转变为false(null,NaN,0或undefined),那么它返回左边的值,否则返回右边的值。只有左边右边都为true了才返回true。

  ||运算符,若左边的表达式为true,即不为false或者不可转变为false,那么返回左边的值,否则返回右边的值,只有左右两边都为false,才返回false。

  与java不同的是,只有类型为boolean了才能返回false或者ture。更多的是返回两边的值。&&左边为false了就返回左边的值,||左边不为false了,就返回左边的值。

  if(a==b)dosth() 等同于a!=b||dosth();

10.对象运算符,"in"要求左边的运算符是一个字符串,或者可以转变为字符串,右边的运算符是一个对象或者数组,如果左边的值是右边的对象的一个属性名则返回true

  instanceof:要求左边的运算数是一个对象,右边的运算数是对象类的名字,如果左边的对象是右边类或者它子类的一个派生类的实例,就返回false否则返回true。

  如果右边不是对象则抛出异常。

  delete,删除对象属性,数组元素,或者变量,如果删除成功返回true,否则返回false。如果属性不存在,那么也返回true,但是注意某些属性是不能够不删除的。

11 .与[]:.跟[]都可以进行对象属性的访问,如果我没记错的话as也是这样子的。不过通过.来进行访问必须是合法。但是[]则可以随意。

  .访问,是当做对象属性来读取,而[]则把对象当做数组下表来读取。这里也可以看出js中对象与数组是很相似的关系。

12.typeof:该函数返回number,string,boolean。如果是对象、数组、null,它返回的是object,对函数、类和闭包它返回的是function,如果运算数是未定义或者为赋值的它返回undefined,同时不同的浏览器环境也会返回不同的值。

13.for(..in..)用来遍历对象所有的属性。例如

  

var obj={x:0,y:20,name:'zhangsan'};
for(arr in obj){
alert(obj[arr]);
}

返回所有对象中得属性

var obj={x:0,y:20,name:'zhangsan'};
function getArr(){
var ret=new Array();
var i=0;
for(ret[i++] in obj);
return ret;
}
alert(getArr());

14 js中得try..catch.finally

try{}catch(e){alert(e)}finally{};

15 with,修改默认的作用域,当要再很长的一段深层对象中提取属性时,可以使用with;

posted on 2011-08-23 14:13    阅读(234)  评论(0编辑  收藏  举报

导航