JavaScript 高级程序设计

xiaoxiao2021-02-28  114

一、typeof 和intanceof 的区别

typeof是一个一元运算符,放在运算数之前,运算数可以是任意类型,返回运算数的类型;

intanceof 是用来判断一个变量是否是某个对象的实例。

二、延长作用域链的方法:

1、try-catch语句的catch块,会创建一个新的变量。

2、with语句,将指定的对象添加到作用域链中。

var o = {href:'2222'}; var herf = "www" function buildUrl(){ var qs ="?debug=true"; with(o){ var url = href+qs; } return url; } var result= buildUrl(); alert(result)

with首先查找相关对象的属性,如果没有 ,才改变变量的值。

三、callee的用法

1 这个属性只有在函数执行时才有效 2 它有一个length属性,可以用来获得形参的个数,因此可以用来比较形参和实参个数是否一致,即比较arguments.length是否等于arguments.callee.length 3 它可以用来递归匿名函数。

function factorial(num) { if(num<=1) { return 1; }else { return num*arguments.callee(num-1); //消除耦合现象; } } var trueFactorial = factorial; factorial=function (num) { return 0; }; console.log(trueFactorial(7)); console.log(factorial(7)); 四、caller 用法

1 这个属性只有当函数在执行时才有用 2 如果在JavaScript程序中,函数是由顶层调用的,则返回null

function outer() { inner(); } function inner(){ alert(arguments.callee.caller) } outer();

转载请注明原文地址: https://www.6miu.com/read-21882.html

最新回复(0)