javascript知识点备忘

本文介绍了JavaScript中的一些实用技巧,包括如何使用arguments.callee实现匿名函数的递归调用,通过立即执行函数表达式(IIFE)避免全局作用域污染,实现深度克隆,以及字符串到数字类型的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.arguments.callee表示function对象对自身的引用

例如:var a=function(){

if(!arguments.callee.id) //当该函数对象不存在id属性时,初始化id=0

arguments.callee.id = 0;

return arguments.callee.id++;

          }

arguments.callee代表的就是函数对象a,这有利于匿名函数的递归或确保函数的封装性.

2.我们常常使用jquery等javascript库,这些js库是如何避免变量与我们程序自己命名的变量发生冲突的呢?

(function (param)   //param 形参

{

...//function body 函数体代码

}

)( actuallParam);//actuallParam 实参

很多js库都会使用上面的形式,这样js库中所用的变量都是同一个作用域中,可以避免变量冲突。


深度克隆的代码如下(深克隆去掉递归即为浅克隆):

Object.prototype.clone = function(){
        var o = this.constructor === Array ? [] : {};
        for(var e in this){
                o[e] = typeof this[e] === "object" ? this[e].clone() : this[e];
        }
        return o;
}


Javascript字符串转数字,最简洁的方法

字符串前加上正符号来将字符串转成数字(+“数字字符串”,即转为数字类型),例如 var a=“77”;  alert(typeof +a);//number
将一个带正整数的数组,组合成最大的正整数。例如[10,3,7,9],组合成97310
function maxnum(arr)
{
  return +(arr.sort(mycompare).join(""));
}
function mycompare(a,b)
{
    var aa=a+"",bb=b+"";
   return (bb+aa)-(aa+bb);
}
var arr=[5,6,11,7]
alert(maxnum(arr));//76511




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值