-
函数声明,函数表达式,函数构造器的区别查看全部
-
类型检测查看全部
-
利用 num+"" 转换为字符串 利用 num-0 转换为数字 = = 的比较,不同类型会先尝试转换为数字,再比较 = = = 严格等于,需要类型和内容都相同查看全部
-
Vo(变量对象)-函数上下文对象,将按照如下顺序进行填充初始化: 1.首先函数参数(若未传入,初始化该参数值为undefined) 2.然后函数声明(若发生命名冲突,会直接覆盖) 3.最后变量声明(初始化变量值为undefined,若发生命名冲突,会忽略。) 函数声明过程函数与前面声明的函数或变量重名会覆盖之前声明的函数或变量 变量声明过程变量与前面声明的函数或变量重名会忽略之前声明的函数或变量,但初始化过程则会覆盖之前声明的函数或变量 VO变量对象 AO函数对象 函数表达式的声明不会影响AO 因此无法在函数外直接通过函数名访问函数表达式声明的函数查看全部
-
检测数据类型的方法查看全部
-
javascript可以用!或+或()放在function前,为函数表达式写法,防止function前置形成函数声明,函数声明后加()会报语法错误查看全部
-
闭包的概念查看全部
-
闭包:常见错误之循环闭包,正确闭包查看全部
-
常见错误之循环闭包查看全部
-
原始类型查看全部
-
【严格模式是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,并增强了安全性。】 1、不允许用with 2、所有变量必须声明,赋值给未声明的变量报错,而不是隐式创建全部变量。 3、eval中的代码不能创建eval所在作用域下的变量、函数。而是为eval单独创建一个作用域,并在eval返回时丢弃。 4、函数中的特殊对象arguments是静态副本,而不像非严格模式那样,修改arguments或修改变量会相互影响。 5、删除configurable=false属性时会报错,而不是忽略。 6、禁止八进制字面量,如010(八进制的8); 7、一般函数调用时(不是对象方法的调用,也不使用apply/call/bind等修改this),this指向null,而不是全局对象。 8、若使用apply/call,当传入null或undefined时,this将指向null或undefined,而不是全局对象。 9、试图修改不可写属性(writable=false),在不可扩展的对象上添加属性时报TypeError,而不是忽略。 10、arguments.caller,arguments.callee被禁用。查看全部
-
bind与currying 把一个函数拆分成子函数查看全部
-
for in查看全部
-
try/catch/finally语句是常见的异常处理机制。其中try从句定义了需要处理的异常所在的代码块。catch紧跟try之后,当try块内某处发生了异常时,调用catch内的代码逻辑。catch从句之后跟随finally块,后者中放置清理代码,不管try块中是否产生异常,finally块内的逻辑总是会执行。查看全部
-
运算符优先级查看全部
举报
0/150
提交
取消