变量转换
但是转换日期(new Date(myVar))和正则表达式(new RegExp(myVar))必须使用构造函数,创建正则表达式的时候要使用/pattern/flags这样的简化形式。
取整同时转换成数值型
自动将其转换为数值型(如果无法转化,变为NaN)
'10.567890' | 0
//结果: 10
//JS里面的所有数值型都是双精度浮点数,因此,JS在进行位运算时,会首先将这些数字运算数转换为整数,然后再执行运算
//| 是二进制或, x|0 永远等于x;^为异或,同0异1,所以 x^0 还是永远等于x;至于~是按位取反,搞了两次以后值当然是一样的
'10.567890' ^ 0
//结果: 10
- 2.23456789 | 0
//结果: -2
~~-2.23456789
//结果: -2
日期转数值
类数组对象转数组
下面的实例用的更绝
方法1
Array.prototype.push.apply(res,arguments) //方法2
}
进制之间的转换
"C"
(int).toString(8); // converts int to octal,eg. 12 => "14"
parseInt(string,16) // converts hex to int,eg. "FF" => 255
parseInt(string,8) // converts octal to int,eg. "20" => 16
将一个数组插入另一个数组指定的位置
删除数组元素
大家也许会想为什么要用splice而不用delete,因为用delete将会在数组里留下一个空洞,而且后面的下标也并没有递减。
判断是否为IE
这样一句简单的话就可以判断是否为ie,太。。。
其实还有更多妙的方法,请看下面
不支持标准的ECMAscript中数组末逗号忽略的机制
var ie = !-[1,];
// 利用了IE的条件注释
var ie = /*@cc_on!@*/false;
// 还是条件注释
var ie//@cc_on=1;
// IE不支持垂直制表符
var ie = '\v'=='v';
// 原理同上
var ie = !+"\v1";
学到这个瞬间觉得自己弱爆了。
尽量利用原生方法
要找一组数字中的最大数,我们可能会写一个循环,例如:
max){
max = numbers[i];
}
}
alert(max);
其实利用原生的方法,可以更简单实现
当然最简洁的方法便是:
当前也可以这样
函数的参数为基底,范围为2~36。
Math.random().toString(36).substring(2);
不用第三方变量交换两个变量的值
事件委派
举个简单的例子:HTML代码如下
js代码如下:
利用事件委派可以写出更加优雅的:
检测ie版本
',all[0]
);
return v > 4 ? v : false ;
}());
javaScript版本检测
你知道你的浏览器支持哪一个版本的Javascript吗?
判断属性是否存在
有的情况下,我们有更深的结构和需要更合适的检查的时候
检测对象是否为数组
给函数传递对象
循环中使用标签
有时候循环当中嵌套循环,你可能想要退出某一层循环,之前总是用一个标志变量来判断,现在才知道有更好的方法
对数组进行去重
或者如下:
其实最优的方法是这样的
使用范例(借用评论):
查找字符串中出现最多的字符及个数
其实还有很多,这些只是我闲来无事总结的一些罢了。
原文链接:https://www.f2er.com/js/53968.html