-
数据类型。
查看全部 -
a == b ...
查看全部 -
js作用域有三种,全局,函数和eval
变量初始化阶段,VO(全局对象,VO===this)按照如下顺序填充:
函数参数(若未传入,初始化该参数的值为undefined)
函数声明(发生命名冲突会覆盖)
变量声明(初始化变量值为undefined,若发生命名冲突,会忽略)
函数表达式不会影响VO,初始化完成再进行赋值
查看全部 -
js中是没有块级作用域的
for循环由var定义的变量仍是全局变量
查看全部 -
闭包,不同与一般的函数,它允许一个函数在立即此法作用域外调用时,仍可访问非本地变量。
优点:灵活和方便;封装
缺点:空间的浪费,内存泄露,性能消耗
查看全部 -
使用new会消除bind对this产生的影响
查看全部 -
严格模式下一般函数的this指向undefined
查看全部 -
函数声明时,可以先调用函数再声明,因为函数声明会前置,不能使用匿名函数,在定义该函数的作用域通过函数名访问;
函数表达式和函数构造器都是在代码执行阶段才会去创建对象,不可以先调用再声明,但是都可以立即调用,函数表达式可以是匿名函数,函数构造器没有函数名
查看全部 -
sort是将数字先转化为字符串再排序,要实现正常的数字排序:
array.sort(function(a,b){
return a-b;})
slice(a,b)函数的参数范围是左闭右开区间,用于截取数组下标(a,b]的元素,-1代表最后一个元素
splice用于拼接数组
查看全部 -
configurable为false,只能修改writable从true为false,除此以外都不允许
查看全部 -
Object.prototype是不允许被delete的
用var定义的全局变量也不能被delete,eval中使用var除外
Object。defineProperty定义的属性一般都是不可枚举的,但是可以设置enumerable为true
查看全部 -
新构造的对象的proto会指向它的原型上的prototype属性,
新对象赋值的时候,不会从原型链上查找,也不会对原型链上的值进行修改
查看全部 -
JavaScript严格模式:
不允许使用with
不允许未声明的变量被赋值
arguments变为参数的静态副本,arguments和形参没有了绑定关系,但是仍然可以修改参数的属性
delete参数,函数名报错(SyntaxError,语法错误),delete不可配置的属性报错(TypeError)
对象字面量重复属性名报错
禁止八进制字面量
eval,arguments变为关键字,不能作为变量,函数名(SyntaxError)
eval成为一个独立的作用域
查看全部 -
内部异常处理没被catch捕获,才会抛出给外部的catch;
内部异常被catch捕获后再抛出异常,外部的catch也能够捕获;
内部异常被catch捕获后未抛出,外部catch不捕获异常
查看全部 -
var a=(1,2,3) // a=3
void 0 //undefined
void(0) //undefined
查看全部
举报