一、操作符

  1、一元操作符:

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

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

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

    其适合任何类型,非数字类型的会转换成数字类型 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日午夜(零时)开始进过的毫秒数来保存日期。

  

  


    

    

最新文章

  1. 北大OJ 1001题
  2. 读书笔记_Effective_C++_条款四十七:请使用trait classes来表示类型信息
  3. Nginx 笔记与总结(4)配置 server 访问日志
  4. [SAP ABAP开发技术总结]ALV
  5. 用Android++在Visual Studio中用C/C++开发Android应用
  6. HDU5039--Hilarity DFS序+线段树区间更新 14年北京网络赛
  7. iOS开发面试题整理(二)
  8. 【android】下载文件至本应用程序的file文件夹或者sdcard
  9. 迷你MVVM框架 avalonjs 0.82发布
  10. 关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
  11. Maven项目中,系统设置的CLASSPATH环境变量问题
  12. ES6部分知识点总结
  13. 学习笔记CB007:分词、命名实体识别、词性标注、句法分析树
  14. vue实现筛选功能,文字选中变色
  15. springboot13 发布和监听事件
  16. 精选!15个必备的VSCode插件
  17. usb枚举
  18. 一、springMVC、freemarker页面半自动静态化
  19. axure学习点
  20. 【VBA编程】10.自定义集合

热门文章

  1. 合并两个vectcor&mdash;&mdash;2013-08-26
  2. mac 终端中添加tree命令显示文件目录结构
  3. Eclipse下使用Hadoop单机模式调试MapReduce程序
  4. 我给自己的Sass+Compass,在Windows下写个bat,快速cd到我的sass目录
  5. 初次使用nodejs的问题
  6. 关于ASPOSE.WORD使用上的一个小问题
  7. html5 video.js 使用及兼容所有浏览器
  8. SQL Server调优系列进阶篇 - 查询优化器的运行方式
  9. /etc/resolv.conf文件详解
  10. stm32中.bss和.data段是在哪里初始化的