你的位置:首页 > Java教程

[Java教程]javascript第二遍基础学习笔记(二)


一、操作符

  1、一元操作符:

    自加自减(分前置和后置2种):++、--

    区别:前置的先自加或自减,后进行计算;而后置的是先进行计算,后自加或自减(在其会产生负面影响时才能体现区别);

var i=1;i++; //++iconsole.log(i); // 没有负面影响的情况下:2/2var a = (++i)+i; var b = (i++)+i;console.log(a); //6console.log(b); //7

    其适合任何类型,非数字类型的会转换成数字类型 Number() ;(基础类型的字面量不能使用,因为其是不可变的)

    加、减运算符:+、-

    其操作数不是数字类型时,会对操作数进行 Number() 类型转换;

  2、位操作符:

    正数:原码表示;

    负数:补码表示(反码+1);

    按位非(~):求反码;

    按位与(&):都是1是1,另外的是0;

    按位或(|):有1是1,都是0是0;

    按位异或(^):相同时1,不相同是0;

    左移(<<):空位补0;

    右移(>>带符号位):空位补符号位;

    右移(>>>不带符号位):空位补0;

  3、布尔操作符:

    逻辑非(!):返回一个相反的布尔值;

    逻辑与(&&):在都是布尔值时返回布尔值,存在不是布尔值时返回不一定是布尔值;

    逻辑或(||):在都是布尔值时返回布尔值,存在不是布尔值时返回不一定是布尔值;

    (注:逻辑与和逻辑或都是短路操作符)

  4、加减乘除:

  5、关系操作符(>、>=、<、<=):都是数值,进行数值比较,都是字符串进行字符串比较,另外的转换成数值比较;

  6、相等操作符(==、===):相等与全等,全等不进行类型转换;

  7、三木运算符( ? : ):;

  ......

二、语句:

  1、if语句:对其的判断条件为非布尔值时进行Boolean()转换成布尔值;

  2、do-while:至少执行一次循环体;

  3、while:

  4、for语句:

  5、for in 语句:用来枚举对象属性;

  6、lable语句:

  7、break和continue语句:

  8、with语句:可以修改作用域,将代码的作用域设置到一个对象中; with(... ){ ... } 

  9、switch语句:

 三、变量、作用域和内存:

  1、值类型和引用类型:值类型的变量存放具体值,而引用类型的是存放其的引用;

  2、函数的参数的传递只能传递值,所以传递引用类型时,传递的是其引用;

  3、作用域是定义时候的非调用时候的;

function a(){  var t="aa";  function b(){    console.log(t);  }  return b;}var t="ww";var b=a();b(); //aa 并非是ww

  4、延长作用域链:try-catch的catch块和with;

  5、js没有块级作用域;

四、数组(Array):

  javascript的一个数组可以存储任何类型的值(不同于另外语言的数组);数值的大小可以动态调整;

  检测数组:可以用instanceof检测,但在多个框架里面,由于每个框架里的Array构造函数不同,其检测会有问题;但还是可以用ECMAScript5 提供了一个方法可以检测或使用Object原型的toString()方法检测;

//ECMAScript5里提供个方法Array.isArray(xx);//Object原型的toString()Object.toString.call(xx);

  转换方法:toLocaleString()、toString()、ValueOf()和join();

  数组的方法:

  push():尾端添加

  pop():尾端删除

  shift():头部删除

  unshift():头部添加

  reverse():反转数组顺序

  sort():不带参数,一字符串比较升序(小到大);接受一个比较函数,函数带2个参数,返回小于零的,第一个参数在前

  concat():追加拼接数组

  slice():截取子数组,2个参数,第二个可选,可以使负数

  splice():可以删除、插入、替换;前2个参数表示起始位置、删除数目,后面的参数是要插入的

  indexOf()和lastIndexOf():

  ECMAScript5中的方法:

  every():

  filter():

  forEach():

  map():

  some():

  reduce():

  reduceRight():

 五、Date类型:

  其使用UTC 1970年1月1日午夜(零时)开始进过的毫秒数来保存日期。