前言:只记叙自己不熟悉的知识点,仅供参考。如果写的有什么不妥的地方,望各位前辈指正,不胜感激。
整形直接量:
十进制:12,32
十六进制:0xff,0Xff //255
八进制(ECMAScript不支持,因此最好不要用以0开头的直接量)
浮点直接量 :
传统写法:1.2 .3333
指数写法:6.02*e23 //6.02 * 10^23
6.02*E23
算数运算:
'+ - * / %
Math对象还包括其他函数和常量实现复杂运算
注意:JS在算数运算的时候溢出,下溢或被0整除时不会报错。
溢出时候结果是 无穷大Infinity 或者- Infinity。
下溢时候结果是 0 或者-0
/0的结果是+ - Infinity 或者NaN(非数字)
【infinite和 nan 是预定义的全局变量】
ECMAScript3可以对这两个进行修改。5的时候修正了它,只能读取。
ECMAScript3中Number对象定义的属性值也是只读的。
特殊
NaN和任何值都不相等,包括自身。
二进制浮点数和四舍五入错误
JS实数无限个,但是JS通过浮点数形式只能表示有限个数,因此将得到的是近似的数:
var x =.2-.1;
var y = .3-.2;
x==y; // false
因此:在需要精确结果的时候避免使用小数,可以先对小数*10^n处理。
日期和时间
Date对象
var then = new Date(2011,0,1); // 2011年1月1日
var later = new Date(2011,0,1,17,10,30); // 2011.1.1 5:10:30pm
var now = new Date();
var stamp = new - then; // 结果为毫秒
。。。。。
文本
字符串是一组16位值组成的不可变的有序序列,来自unicode字符集。
由字符串来表示文本。
字符串直接量
ECMAScript3必须在一行中,ECMAScript5可以在不同行(每行以\)
转义字符:
字符串:
是固定不变的,返回的是新字符串。
模式匹配:
RegExp正则表达式,不赘述。
布尔值
任意的JS值都可以转换为布尔值,包括:undefined ,null,NaN等
null 和 undefined
typeof null // object,常用于描述空值
typeof undefined // undefined,未定义是一个预定义的全局变量
null == undefined; // true
null === undefined; // false