Math.pow(2,53) //2的53次幂
Math.round(.6) //1.0 四舍五入
Math.ceil(.6) //1.0 向上取整
Math.floor(.6) //0.0 向下求整
Math.abs(-5) //5 求绝对值
Math.max(2,9,5) //返回最大值
Math.min(12,5,4) //返回最小值
Math.random() //生成一个大于等于0小于1.0的伪随机数
var now = new Date(); //当前日期和时间
var then = new Date(2011,0,1); //2011年1月1日
var later = new Date(2011,0,1,17,10,30); //同一天当地时间 5:10:30pm
var elapse = now - then ; //日期减法 计算时间间隔的毫秒数
later.getFullYear(); //2011 获取年
later.getMonth(); //0 从0开始计数月份
later.getDate(); //1 从1开始计数天数
later.getDay(); //5 获取星期几,0代表星期日,5代表星期一
later.getHours(); //当地时间 17:10 pm
later.getUTCHours(); //使用utc表示小时的时间,基于时区
//记住 , 在JavaScript中字符串是固定不变的,类似replace()和toUpperCase() 的方法都返回新字符串,原字符串本身并没有发生改变。
//在es5中字符串可以当做只读数组,除了使用charAt()方法,也可以使用方括号来访问字符串中的单个字符。
//slice substr substring concat 如果没有给这些方法传递第二个参数 这将字符串的长度作为结束为止
var s= "hello word";
s.charAt(0); //"h" 第一个字符
s.chatAt(s.length-1); //"d" 最后一个字符
s.substring(1,4); //"ell" 第2~4 个字符,会将所有负的参数都转换为0
s.slice(1,4); //"ell" 同上
s.slice(-3); //"rld" 最后三个字符,将这个负值3与字符串的 长度相加
s.indexOf("l"); //2 字符l首次出现的位置
s.lastIndexOf("l"); //10 字符l最后一次出现的位置
s.indexOf("l",3); //3 在位置3及之后首次出现字符l的位置
s.split(", "); //["hello", "world"] 分割成字符串
s.replace("h", "H"); //"Hello, word" 全文字符替换
s.toUpperCase(); // "HELLO, WORLD"
s.concat("again") // "hello word again"
s.concat("word", "!"); // "hello word word!"
s.substr(0,4); // "hell" 第二个参数是要返回的个数 第一个参数是起始位置。
s.substr(-3); // "rld" 将负的第一个参数加上字符串的长度,负的第二个参数转换为0
var str=" hello word ";
s.trim(str); //删除字符串前置及后缀空格会保持不变
var text = "testing:1,2,3";
var pattern = /\d+/g ; //匹配所有包含一个或多个数字的实例
pattern.test(text) ; //true 匹配成功
text.search(pattern) ; //9 首次匹配成功的位置
text.match(pattern) ; //["1","2","3"] 所有匹配组成的数组
text.replace(pattern, "#") ; //"testing:#,#,#"
text.split(/\D+/); //["","1","2","3"] 用非数字字符截取字符串
undefined null 0 -0 NaN "" //任意JavaScript的值都可以转换为布尔值。左边这些值会被转换成false;
//所有其他值,包括所有对象都会转换成true。false和上面6个可以转换成false。
if((x == 0 && y == 0) || !(z == 0)){ //x和y都是0或z是非0
}
//实际上认为null是它自有类型的唯一一个成员,可以表示数字,字符串,对象是无值的。
typeof(null) //object 可以将null认为是一个特殊的对象值,含义是非对象
//undefined 表示值的空缺,它是变量的一种取值,表明变量没有初始化,如果查询对象属性或者数组元素的值返回undefined则说明这个属性或元素不存在。
null == undefined // true
null === undefined // false
//全局对象在JavaScript中重要用途,全局对象的属性是全局定义的符号,JavaScript程序可以直接使用,当JavaScript解释器启动时(或者任何web浏览器加载新页面的时候),它将建一个新的全局对象,并给它一组定义的初始属性:
//全局属性 undefined Infinity NaN
//全局函数 isNaN() parseInt() eval()
//构造函数 Date() RegExp() String() Object() Array()
//全局对象 Math JSON
//全局对象的初始属性并不是保留字,但他们应该当做保留字来对待。
//如果代码声明了一个全局变量,这个全局变量就是全局对象的一个属性。
//原始值的比较是值的比较:只有在它们值相等时它们才相等。
//但是对于字符串来说则并不明显,如果比较两个单独的字符串,当且仅当它们的长度相等且每个索引的字符都相等时,JavaScript才认为它们才相等。
//通常将对象称为引用类型,以此和基本类型分开。
//依照术语的叫法,对象的值都是引用,对象的比较均是引用的比较。
//对象的比较并非值的比较,即使两个对象包含同样的属性及相同的值,它们也是不相等的。各个索引元素相等的两个数组也不相等。
var o = {x:1}, p={x:1}; //具有相同属性的两个对象
o === p ; //false 两个单独对象永不相等
var a=[],b=[]; //两个单独的空数组
a === b ; //false 两个单独的数组永不相等
//当且仅当它们引用同一个对象时它们才相等。
var a=[]; //定义一个引用空数组的变量a
var b = a; //变量b与a引用同一个数组
b[0]=1; //通过变量b来修改引用数组
a[0]; //1 变量a也会修改
a === b; //true a和b的引用同一个数组 因此它们相等
//如果想得到一个对象或数组的副本,则必须显示复制对象的 每个属性或数组的每个元素。下面这个例子是通过循环来完成数组的复制
var a=["a","b","c"];
var b=[];
for(var i=0;i//如果想 比较 两个单独的对象或者数组,则必须比较他们的属性或元素。如下代码定义了一个比较两个数组的函数
function equalArrays(a,b){
if(a.length != b.length){
return false;
}
for(var i=0; iif(a[i] !== b[i]){
return fasle;
}else{
return true;
}
}
}
//转换结果无意义的话将返回NaN
10+" object"; //"10 object" 数字10转换成字符串
"7" * "4" ; //28 两个字符串均转换为数字
var n=1-"x"; //NaN 字符串 "x" 无法转换为数字
n+ " object"; //"NaN object" NaN转换为字符串NaN
// null 转数字 为 0
// " " 转数字 为 0
// "1.2" (非空,数字)转数字 为 0
// "one" (非空,非数字)转数字 为 NaN
// -0 转 字符串 为 0
// 任意数组[] 转数字 为 0 我在编辑器上测试应该是空数组转换为0
// 任意数组 转字符串 为 ""
// 其他数组["a"] 转字符串 为 NaN
//数字表示的字符串可以直接转换成数字,也许结尾和开头处带有空格,但在开始和结尾处的任意非空格字符串都不会被当成数字直接量的一部分,进而造成字符串转换为数字的结果为NaN。
// "==" 运算符从不视图将其操作数转换为布尔值
"0" == false //比较之前字符串和布尔值都转换成数字