首页 > 语言 > JavaScript > 正文

个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节

2024-05-06 14:40:43
字体:
来源:转载
供稿:网友

变量转换

var myVar  = "3.14159",str   = ""+ myVar,// to stringint   = ~~myVar, // to integerfloat  = 1*myVar, // to floatbool  = !!myVar, /* to boolean - any string with lengthand any number except 0 are true */array  = [myVar]; // to array


 

但是转换日期(new Date(myVar))和正则表达式(new RegExp(myVar))必须使用构造函数,创建正则表达式的时候要使用/pattern/flags这样的简化形式。 

取整同时转换成数值型 

//字符型变量参与运算时,JS会自动将其转换为数值型(如果无法转化,变为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

日期转数值

    //JS本身时间的内部表示形式就是Unix时间戳,以毫秒为单位记录着当前距离1970年1月1日0点的时间单位    var d = +new Date(); //1295698416792

 

类数组对象转数组

var arr =[].slice.call(arguments)


 

下面的实例用的更绝

function test() {  var res = ['item1', 'item2']  res = res.concat(Array.prototype.slice.call(arguments)) //方法1  Array.prototype.push.apply(res, arguments)       //方法2}

进制之间的转换

(int).toString(16); // converts int to hex, eg 12 => "C"(int).toString(8); // converts int to octal, eg. 12 => "14"parseInt(string,16) // converts hex to int, eg. "FF" => 255parseInt(string,8) // converts octal to int, eg. "20" => 16

 将一个数组插入另一个数组指定的位置

var a = [1,2,3,7,8,9];var b = [4,5,6];var insertIndex = 3;a.splice.apply(a, Array.prototype.concat(insertIndex, 0, b));

删除数组元素

var a = [1,2,3,4,5];a.splice(3,1);      //a = [1,2,3,5]

大家也许会想为什么要用splice而不用delete,因为用delete将会在数组里留下一个空洞,而且后面的下标也并没有递减。

判断是否为IE

var ie = /*@cc_on !@*/false;

这样一句简单的话就可以判断是否为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";            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选